您可以覆盖上的
clean_<INSERT_FIELD_HERE>()方法
UserForm来检查这种特殊情况。看起来像这样:
forms.py:
class UserForm(forms.ModelForm): class meta: model = User fields = ('email',) def clean_email(self): # Get the email email = self.cleaned_data.get('email') # Check to see if any users already exist with this email as a username. try: match = User.objects.get(email=email) except User.DoesNotExist: # Unable to find a user, this is fine return email # A user was found with this as a username, raise an error. raise forms.ValidationError('This email address is already in use.')class UserProfileForm(forms.ModelForm): class meta: model = UserProfile fields = ('first_name', 'last_name', 'company', 'website', 'phone_number')您可以在有关表单的Django文档中阅读有关清理表单中特定字段的更多信息。
就是说,我认为您应该考虑创建自定义用户模型,而不是将您的
User Profile类视为的包装器
User。



