Django-admin Создание пользователя на пользовательской модели пользователя

При использовании модели аутентификации Django по умолчанию (django.contrib.auth.models.User), На странице администратора Django есть отдельный рабочий процесс для создания объекта пользователя. Администратора сначала спрашивают только имя пользователя и пароль нового пользователя. После предоставления сведений пользователь создается (с хэшированным паролем), и другие поля могут быть добавлены для пользователя в качестве редактирования.

Но когда AUTH_USER_MODEL является настраиваемой моделью пользователя, то все эти полномочия теряются в панели администратора, и вы не можете создавать пользователей или изменять их пароли с помощью панели администратора, поскольку в этом случае пароли по умолчанию не хэшируются.

Как это исправить и создавать пользователей из админки? Просто простой трюк.

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from users import models

admin.site.register(models.MyUser, UserAdmin)

В приведенном выше коде мы только что зарегистрировали нашу модель User для использования UserAdmin класс, который имеет конфигурации для форм добавления и редактирования.

Если сейчас зайти в панель администратора и нажать на Add Userвы должны увидеть другую форму, содержащую только имя пользователя и пароль.

Скриншот 05.07.2019, 13.03.28.png

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

Скриншот 05.07.2019, 13.22.05.png

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *