forked from geeeeeeeek/videoproject
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathforms.py
124 lines (105 loc) · 5.8 KB
/
forms.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
from django import forms
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm, PasswordChangeForm
from django.core.exceptions import ValidationError
from .models import User, Feedback
def avatar_file_size(value):
limit = 2 * 1024 * 1024
if value.size > limit:
raise ValidationError('头像文件太大了,请限制在2M之内')
class ProfileForm(forms.ModelForm):
nickname = forms.CharField(min_length=1,max_length=20,required=False,
error_messages={
'min_length': '昵称至少4个字符',
'min_length': '昵称不能多于20个字符',
},
widget=forms.TextInput())
avatar = forms.ImageField(required=False, validators=[avatar_file_size],
widget=forms.FileInput(attrs={'class' : 'n'}))
email = forms.EmailField(required=False,
error_messages={
'invalid': '请输入有效的Email地址',
},
widget=forms.EmailInput())
gender = forms.CharField(min_length=1,max_length=1,required=False,
widget=forms.HiddenInput())
mobile = forms.CharField(min_length=11,max_length=11,required=False,
error_messages={
'min_length': '请输入11位手机号',
'max_length': '请输入11位手机号',
},
widget=forms.NumberInput())
class Meta:
model = User
fields = ['nickname', 'avatar', 'email', 'gender', 'mobile']
class UserLoginForm(AuthenticationForm):
username = forms.CharField(min_length=4,max_length=30,
error_messages={
'min_length': '用户名不少于4个字符',
'max_length': '用户名不能多于30个字符',
'required': '用户名不能为空',
},
widget=forms.TextInput(attrs={'placeholder': '请输入用户名'}))
password = forms.CharField(min_length=8,max_length=30,
error_messages={
'min_length': '密码不少于8个字符',
'max_length': '密码不能多于30个字符',
'required': '密码不能为空',
},
widget=forms.PasswordInput(attrs={'placeholder': '请输入密码'}))
class Meta:
model = User
fields = ['username', 'password']
error_messages = {'invalid_login': '用户名或密码错误', }
class SignUpForm(UserCreationForm):
username = forms.CharField(min_length=4,max_length=30,
error_messages={
'min_length': '用户名不少于4个字符',
'max_length': '用户名不能多于30个字符',
'required': '用户名不能为空',
},
widget=forms.TextInput(attrs={'placeholder': '请输入用户名'}))
password1 = forms.CharField(min_length=8, max_length=30,
error_messages={
'min_length': '密码不少于8个字符',
'max_length': '密码不能多于30个字符',
'required': '密码不能为空',
},
widget=forms.PasswordInput(attrs={'placeholder': '请输入密码'}))
password2 = forms.CharField(min_length=8,max_length=30,
error_messages={
'min_length': '密码不少于8个字符',
'max_length': '密码不能多于30个字符',
'required': '密码不能为空',
},
widget=forms.PasswordInput(attrs={'placeholder': '请确认密码'}))
class Meta:
model = User
fields = ('username', 'password1', 'password2',)
error_messages = {'password_mismatch': '两次密码不一致', }
class ChangePwdForm(PasswordChangeForm):
old_password = forms.CharField(error_messages={'required': '不能为空',},
widget=forms.PasswordInput(attrs={'placeholder': '请输入旧密码'})
)
new_password1 = forms.CharField(error_messages={'required': '不能为空',},
widget=forms.PasswordInput(attrs={'placeholder': '请输入新密码'})
)
new_password2 = forms.CharField(error_messages={'required': '不能为空',},
widget=forms.PasswordInput(attrs={'placeholder': '请输入确认密码'})
)
class SubscribeForm(forms.ModelForm):
class Meta:
model = User
fields = ['subscribe']
class FeedbackForm(forms.ModelForm):
content = forms.CharField(min_length=4,max_length=200,
error_messages={
'min_length': '至少4个字符',
'max_length': '不能多于200个字符',
'required':'内容不能为空'
},
widget=forms.Textarea(attrs={'placeholder': '请输入内容'}))
contact = forms.CharField(required=False,
widget=forms.TextInput(attrs={'placeholder':'请输入联系方式'}))
class Meta:
model = Feedback
fields = ['content', 'contact']