Получение пользовательской модели пользователя Django Custom в списке приложения администратора `Авторизация и авторизация`
Обратите внимание, что мой вопрос похож на этот, однако в том ответе рекомендуется не вызывать настроенную модель пользователя User
, тогда как в официальных документах и этом вопросе это делается.
Я создал пользовательскую модель User в приложении под названием plug
:
plug/models.py
:
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
"""
Requirements:
- Must be defined in models.py, due to the way settings.AUTH_USER_MODEL is defined
"""
is_hamster = models.BooleanField(default=False)
is_superhero = models.BooleanField(default=False)
is_pogo_stick = models.BooleanField(default=False)
class Meta:
# app_label = 'auth' # <-- This doesnt work
db_table = 'auth_user'
settings.py
файл установлен соответствующим образом:
AUTH_USER_MODEL = 'plug.User'
plug/admin.py
:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth import get_user_model
@admin.register(get_user_model())
class UserAdmin(UserAdmin):
list_display = ('username', 'first_name', 'last_name', 'email', 'is_hamste', 'is_superhero', 'is_pogo_stick')
list_display_links = list_display
fieldsets = UserAdmin.fieldsets + (
('Leasing User Role', {'fields': ('is_hamste', 'is_superhero', 'is_pogo_stick')}),
)
Все хорошо, за исключением того, что в интерфейсе администратора пользовательский пользователь отображается под заголовком Plug
вместо Authentication and Authorization
(где раньше отображался Users
вместе с Groups
).
Я попробовал установить app_label = 'auth'
в мета пользовательской модели пользователя, однако тогда происходит сбой с ошибкой:
File "/home/michael/venv/project/lib/python3.8/site-packages/django/db/models/base.py", line 321, in __new__
new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
File "/home/michael/venv/project/lib/python3.8/site-packages/django/apps/registry.py", line 228, in register_model
raise RuntimeError(
RuntimeError: Conflicting 'user' models in application 'auth': <class 'django.contrib.auth.models.User'> and <class 'dist.plug.models.User'>.
Как сделать так, чтобы пользовательская модель пользователя отображалась в списке под стандартным заголовком администратора приложения Authentication and Authorization
?