Подтвердить что ты не робот

Поле электронной почты пользователя Django: как сделать его обязательным

Мне нужно сделать поле электронной почты в модели пользователя Django обязательным. Для меня это не очевидно, как это сделать. Предложения приветствуются. В настоящее время я использую:

from django.contrib.auth.forms import UserCreationForm

для моей формы создания пользователя и сочетания этого с моим собственным UserProfileCreateForm

Ян

4b9b3361

Ответ 1

Вы должны подклассифицировать предоставленную регистрационную форму и переопределить свойства поля в классе Meta.

from django.contrib.auth.forms import UserCreationForm

# Not sure about the syntax on this one. Can't find the documentation.
class MyUserCreationForm(UserCreationForm):

    class Meta:
        email = {
            'required': True
        }


# This will definitely work
class MyUserCreationForm(UserCreationForm):

    def __init__(self, *args, **kwargs):
        super(MyUserCreationForm, self).__init__(*args, **kwargs)

        self.fields['email'].required = True

Ответ 2

from django import forms
from django.contrib.auth.models import User


class MyUserForm(forms.ModelForm):

    email = forms.CharField(max_length=75, required=True)

    class Meta:

        model = User
        fields = ('username', 'email', 'password')