Приложение Django исчезает с сайта Django Admin, когда я добавляю файл apps.py

Я работаю с Django 3.2 и пытаюсь правильно настроить AppsConfig подкласс apps.py для того, чтобы избежать дублирования имен приложений при инициализации проекта.

Контекст следующий. У меня в INSTALLED_APPS есть два приложения, имена которых одинаковы, хотя пути к ним не совпадают:

INSTALLED_APPS = [
    ...
    'first_app.myapp',
    'second_app.myapp'
]

Чтобы избежать ошибки, показанной ниже (и согласно документации), мне нужно создать файл apps.py, подклассифицирующий AppConfig хотя бы в одном из приложений под названием myapp. Я решил создать этот файл во втором приложении, second_app.myapp.

django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: myapp

Модуль app.py в second_app.myapp выглядит следующим образом:

from django.apps import AppConfig


class MySecondAppConfig(AppConfig):
    name = "second_app.myapp"
    label = "my_second_app"

А в __init__.py я добавил:

default_app_config = 'second_app.myapp.apps.MySecondAppConfig'

Моя admin.py выглядит так:

from django.contrib import admin
from .models import MyModel


class MySecondAppAdminModel(admin.ModelAdmin):
    list_display = ('attr_1', 'attr_2')


admin.site.register(MyModel, MySecondAppAdminModel)

Когда я запускаю проект, все работает нормально, и я могу использовать информацию о модели, представления, вызываемые из second_app.myapp, также работают нормально. Проблема возникает, когда я захожу на сайт администратора (http://localhost:8000/admin), где появляется только форма администратора first_app.myapp вместо обеих.

Можете ли вы мне помочь? Заранее спасибо.

вместо этого:

INSTALLED_APPS = [
    ...
    'first_app.myapp',
    'second_app.myapp'
]

Попробуйте только этот способ:

INSTALLED_APPS = [
    ...
    'first_app',
    'second_app'
]

Вы получили эту ошибку, потому что здесь first_app.myapp и second_app.myapp мое приложение дублируется. Вы не должны использовать это в обоих приложениях.

ИЛИ

INSTALLED_APPS = [
        ...
        'first_app.apps.MyFirstAppConfig',
        'second_app.apps.MySecondAppConfig'
    ]
Вернуться на верх