django admin auth.User требует электронной почты

У меня есть быстрый вопрос,

В панели администратора вы можете сделать электронную почту пользователя уникальной через:

User._meta.get_field('email')._unique = True

И мне было интересно, можете ли вы также сделать это обязательным, как в приведенном выше фрагменте, применяя его через базу данных, если да, то как мне это сделать?


person Juan Carlos Asuncion    schedule 14.03.2016    source источник
comment
stackoverflow.com/questions/5493096/   -  person Bahrom    schedule 14.03.2016
comment
@UNOwen Как это поможет, если вы не используете форму?   -  person Gocht    schedule 14.03.2016
comment
@Gocht, ах, справедливое замечание, извините, что пропустил это.   -  person Bahrom    schedule 14.03.2016
comment
У меня есть вопрос о поле электронной почты модели Django User: как чтобы сделать его обязательным первый ответ, куда это идет?   -  person Juan Carlos Asuncion    schedule 14.03.2016
comment
Вы должны использовать этот код в своей форме, когда используете FormView   -  person Gocht    schedule 14.03.2016


Ответы (1)


Я не уверен, что вы запрашиваете именно логин администратора, но если вы в порядке, входя в систему с помощью обычного потока django-allauth, все, что вам нужно сделать, это добавить следующие настройки (settings.py):

ACCOUNT_USER_MODEL_EMAIL_FIELD= 'email'
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = True   
ACCOUNT_EMAIL_REQUIRED = True

Если вы хотите переключиться на использование самой электронной почты для входа в систему (в этом случае это также сделает ее обязательной и будет работать с входом администратора, добавьте также

ACCOUNT_AUTHENTICATION_METHOD = 'email'

Надеюсь это поможет

person dkarchmer    schedule 14.03.2016
comment
Ваше приложение settings.py - person Alex Panov; 15.03.2016
comment
Уточните ответ, что это в settings.py, как сказал Алекс. - person dkarchmer; 15.03.2016
comment
Если я правильно понял, я размещу это где-нибудь в моем settings.py файле. если это так, то ничего не произошло, я все еще могу оставить адрес электронной почты пустым - person Juan Carlos Asuncion; 15.03.2016
comment
Из вашего вопроса (и отказа от ответственности в моем ответе) неясно, используете ли вы django-allauth или логин администратора django. Вы можете это прояснить? Вы входите в систему, используя /admin/login? или что-то вроде /account/login? Одним управляет django, а другим allauth. - person dkarchmer; 15.03.2016