Проблема с отображением модели в админке
После того, как я переопределил модель пользователя (AbstractUser
), в админке перестали отображаться модели (см. 1 скрин).
# models.py
class User(AbstractUser):
wallet = models.IntegerField('Баланс', default=0)
class App(models.Model):
title = models.CharField('Название', max_length=50)
description = models.TextField('Описание', blank=True)
file = models.FileField(upload_to='upload/')
time_create = models.DateTimeField('Время создания', auto_now_add=True)
time_update = models.DateTimeField('Время обновления', auto_now=True)
time_start = models.DateTimeField('Время запуска', auto_now=True)
is_run = models.BooleanField('Запущен', default=True)
# settings.py
AUTH_USER_MODEL = 'app.User'
После проведения миграций и созданию суперюзера, это привело к такому виду админки:
Следуя решению из этой темы, я добавил в admin.py следующий код:
# admin.py
@admin.register(models.User)
class CustomUserAdmin(UserAdmin):
fieldsets = (
(None, {"fields": ("username", "password")}),
(_("Personal info"), {"fields": ("first_name", "last_name", "email", "wallet",)}),
(
_("Permissions"),
{
"fields": (
"is_active",
"is_staff",
"is_superuser",
"groups",
"user_permissions",
),
},
),
(_("Important dates"), {"fields": ("last_login", "date_joined")}),
)
form = UserChangeForm
add_form = UserCreationForm
change_password_form = AdminPasswordChangeForm
list_display = ("username", "email", "first_name", "last_name", "is_staff")
list_filter = ("is_staff", "is_superuser", "is_active", "groups")
search_fields = ("username", "first_name", "last_name", "email")
ordering = ("username",)
filter_horizontal = (
"groups",
"user_permissions",
)
Что привело к добавлению в админку модели пользователей:
Однако модель App
все еще не видна. Есть ли быстрый способ отобразить все существующие модели в админке после переопределения AbstractUser
или теперь надо каждую модель регистрировать вручную?
Для отображения модели в админке, необходимо в файле admin.py
добавить строку
admin.site.register(<название вашей модели>)
в моем случае это:
from django.contrib import admin
from app.models import App, User
admin.site.register(User)
admin.site.register(App)