Как правильно управлять категориями в админке django?

Я зарегистрировал свои модели в admin.py как

admin.site.register(Food_Gallery)
admin.site.register(Gym)
admin.site.register(Gym_Gallery)
admin.site.register(Gym_Pricing_Plans)
admin.site.register(Gym_Programs)
admin.site.register(Trainer)
admin.site.register(Farm)
admin.site.register(Farm_Gallery)
admin.site.register(Farm_Products)

Это показывает все модели на одной странице в админке django

Я хочу разделить эти модели на определенные категории и отобразить соответствующие модели. Как это сделать?

Определенные примеры, как

Food
Gym
Farm

вам нужно объявить новое приложение и добавить его в installed_apps, а затем добавить app_label к вашим моделям

смотрите app_label здесь

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

Вам нужно создать приложение типа

python manage.py startapp food
python manage.py startapp gym
python manage.py startapp farm

INSTALLED_APP += [
   'farm',
   'food',
   'gym',
]

Затем добавьте в файл admin.py

admin.site.register(food)
admin.site.register(gym)
admin.site.register(farm)

Это способ записи.

Хм, я не могу придумать простой способ сделать это, поскольку в админке django нет понятия иерархии, кроме приложений и моделей. Вы можете попробовать подход, предложенный Akash, использовать пользовательские страницы администраторов с StackedInlines или вы можете использовать django-admirarchy, но я не уверен, что это то, что вам нужно.

Есть два способа.

1. Настройте сайт администратора Django.

https://docs.djangoproject.com/en/4.0/intro/tutorial07/#customize-the-admin-index-page

2. Создайте различные приложения для каждой категории.

В терминале,

python manage.py startapp food
python manage.py startapp gym
python manage.py startapp farm

В файле food/admin.py,

admin.site.register(Food_Gallery)

В файле gym/admin.py,

admin.site.register(Gym)
admin.site.register(Gym_Gallery)
admin.site.register(Gym_Pricing_Plans)
admin.site.register(Gym_Programs)
admin.site.register(Trainer)

В файле farm/admin.py,

admin.site.register(Farm)
admin.site.register(Farm_Gallery)
admin.site.register(Farm_Products)

Вам также нужно добавить свои приложения в файл settings.py и, возможно, вам нужно изменить некоторые из ваших кодов.

Каждый метод имеет свои плюсы и минусы, поэтому вы сами решаете, какой из них использовать.

Вернуться на верх