You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
from django import forms
|
|
|
|
from movie.models import User, Movie_rating
|
|
|
|
|
|
|
|
class RegisterForm(forms.ModelForm):
|
|
password_repeat = forms.CharField(max_length=256)
|
|
|
|
def get_errors(self):
|
|
errors = self.errors.get_json_data()
|
|
errors_lst = []
|
|
for messages in errors.values():
|
|
for message_dict in messages:
|
|
for key, message in message_dict.items():
|
|
if key == 'message':
|
|
errors_lst.append(message)
|
|
return errors_lst
|
|
|
|
|
|
def clean(self):
|
|
cleaned_data = super(RegisterForm, self).clean()
|
|
pwd = cleaned_data.get('password')
|
|
password_repeat = cleaned_data.get('password_repeat')
|
|
if pwd != password_repeat:
|
|
raise forms.ValidationError(message='两次密码输入不一致!')
|
|
return cleaned_data
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ['name', 'password', 'email']
|
|
|
|
|
|
|
|
class LoginForm(forms.ModelForm):
|
|
name = forms.CharField(max_length=128)
|
|
remember = forms.IntegerField(required=False)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ['password']
|
|
|
|
def get_errors(self):
|
|
errors = self.errors.get_json_data()
|
|
errors_lst = []
|
|
for messages in errors.values():
|
|
for message_dict in messages:
|
|
for key, message in message_dict.items():
|
|
if key == 'message':
|
|
errors_lst.append(message)
|
|
return errors_lst
|
|
|
|
|
|
class CommentForm(forms.ModelForm):
|
|
def clean(self):
|
|
cleaned_data = super(CommentForm, self).clean()
|
|
score = cleaned_data.get('score')
|
|
if score == 0:
|
|
raise forms.ValidationError(message='评分不能为空!')
|
|
else:
|
|
return cleaned_data
|
|
|
|
class Meta:
|
|
model = Movie_rating
|
|
fields = ['score', 'comment']
|