Определенные модели не отображаются в админке django 4, несмотря на регистрацию

Используется django 4.0.3 и restframework.

У меня есть несколько моделей, зарегистрированных в админке django:

@admin.register(models.Drug)
class DrugAdmin(admin.ModelAdmin):
    list_display = ('apl_label', 'name', 'drug_class', 'atc_code', )
    
@admin.register(models.Organism)
class OrganismAdmin(admin.ModelAdmin):
    list_display = ('apl_label', 'long_name', 'short_name', 'genus', 'flagged', 'notes')

....

По какой-то причине некоторые модели не отображаются в представлении администратора. В данном примере отображается Organism, но Drug скрыт. Я могу зайти в http://localhost:8000/admin/api/drug/ и получить доступ к этой странице администратора, но она не отображается в http://localhost:8000/admin/. Сообщение об ошибке также отсутствует. Я запустил makemigrations и migrate.

Разрешения устанавливаются глобально только в settings.py:

...
'DEFAULT_AUTHENTICATION_CLASSES': [
    'rest_framework.authentication.SessionAuthentication',
],

Все время одни и те же модели не отображаются. Я пробовал удалять базу данных и создавать все с нуля. Безрезультатно. Почему Django решает не показывать определенные модели?

enter image description here

Если это решит вашу проблему, вы можете использовать это. Или вы можете проверить это, чтобы понять, является ли проблема из-за вашего admin.py или нет.

Это будет работать правильно:

from django.contrib import admin
from .models import (
    Drug,
    Organism,
    )

admin.site.register(Drug)
admin.site.register(Organism)

Этого не должно происходить. Ваш код кажется мне совершенно нормальным. Убедитесь, что ваш верхний импорт содержит следующие строки:-

from django.contrib import admin
from . import models

Если ваши модели не имеют дополнительных настроек, таких как наборы полей и/или заголовки разделов, вы можете попробовать использовать старый добрый admin.site.register(models.modelname). Возможно, декоратор по какой-то причине не работает у вас, хотя я никогда не встречал такого раньше.

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