Рубрики
Без рубрики

Пользовательская пользовательская модель в Django 3

Введение Привет, в этом посте мы научимся создавать пользовательскую модель пользователя в Django 3 и W … Tagged With Python, Django, Webdev, Codenewbie.

Привет, в этом посте мы научимся создавать пользовательскую модель в Django 3 И мы также изменим функциональность входа в систему по умолчанию администратора Django. Мы будем использовать электронную почту и пароль для входа в систему.

Мне пришлось сделать пользовательский пользователь для моего приложения, я смог сделать модель, но проблема заключалась в том, что команда CreateSuperuser не работает. Чтобы отлаживать его, мне пришлось провести много исследований, и проблема была в том, что большинство ресурсов в то время устарели, поэтому я решил написать этот пост.

theshubhagrwl/django_custom_user_app

Я сделал GitHub Репо, поэтому, если вы хотите, вы можете напрямую использовать это (инструкции есть)

Прежде всего, сделайте Django Project и создайте приложение под названием пользователи

Теперь мы можем начать редактировать файл моделей.py в приложении нашего пользователя

Перед редактированием давайте сделаем некоторую теорию. Что такое Менеджеры в Джанго?

Менеджер – это интерфейс, через который операции запросов базы данных предоставляются моделям Django. По крайней мере, один менеджер существует для каждой модели в приложении Django.- Django Docs

Проще говоря, менеджеры предоставляют нам способ управлять нашей моделью. Мы можем реализовать это, сделав нашу модель подклассом класса менеджера. Класс менеджера – это место, где такие команды, как CreateSuperuser можно отредактировать. Теперь откройте модели.py и поместите в него следующий код

Самая важная вещь, которую нужно отметить, это is_staff и is_superuser атрибуты. Создание опечатки в этом может вызвать трудную отладку.

Что мы сделали здесь?

Мы сделали Мангер Для нашей пользовательской модели. Внутри этого мы сделали 2 функции, называемые Создать пользователя и create_superuser . create_user , как следует из названия, создает нового пользователя и create_superuser используется для создания суперпользователя путем настройки is_staff и is_superuser к истинному. После менеджера у нас есть обычная модель. Мы установили Имя пользователя Никто, потому что мы не хотим включать имя пользователя. Username_field В нем указано, что мы объявляем «электронную почту». Это должно быть уникальным. session_token это дополнительное поле. У меня есть это, потому что я делал свой табличный токен. Последняя строка моделей.py указывает, что Customuser является объектом пользовательского управляющего.

После того, как вы сделали модель, откройте файл stens.py и добавьте в нее строку

AUTH_USER_MODEL = 'users.CustomUser'

Django позволяет переопределить пользовательскую модель по умолчанию, предоставляя значение для настройки AUTH_USER_MODEL, которая ссылается на пользовательскую модель. Эта пунктирная пара описывает имя приложения Django (которое должно быть в вашем insted_apps) и имя модели Django, которую вы хотите использовать в качестве модели пользователя. -Django Док

Теперь вы можете запустить команды миграции и создать также суперпользователь.

py manage.py makemigrations
py manage.py migrate
py manage.py createsuperuser

Он попросит вашу электронную почту и пароль. Дайте ему детали.

Не забудьте зарегистрировать приложение в администраторе

admin.site.register(CustomUser) 

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

Оригинал: “https://dev.to/theshubhagrwl/custom-user-model-in-django-3-32k7”