Приложение 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'
]