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

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']