Импорт моделей из различных приложений в админку Django

Я пытаюсь создать страницу администратора для my project, включая app1 и app2

myproject
    settings.py
    urls.py
    admin.py
app1
app2

В myproject/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app1/', include('app1.urls')),
    path('app2/', include('app2.urls')),
    
]

В myproject/admin.py

from django.contrib import admin
from app1.models import User
from app2.models import Manager, Employee, Task, Template


admin.site.register(User)
admin.site.register(Manager)
admin.site.register(Employee)
admin.site.register(Task)
admin.site.register(Template)

Почему моя страница администратора не импортирует никакие модели вообще? Спасибо!

внутри каждого приложения вы должны разместить файл admin, чтобы django мог отслеживать эти файлы, поэтому в вашем app1 в файле admin.py, относящемся к директории app1 app1/admin.py, вам нужно разместить этот код

from django.contrib import admin
from app1.models import User
 
admin.site.register(User)

и в app2 в admin.py, относящемся к директории app2app2/admin.py поместите это :


from django.contrib import admin

from app2.models import Manager, Employee, Task, Template


admin.site.register(Manager)
admin.site.register(Employee)
admin.site.register(Task)
admin.site.register(Template)

По умолчанию каждое приложение должно иметь свой собственный файл admin.py. Django обнаружит его в соответствующей папке приложения и отразит его на странице администратора.

Однако если вы пытаетесь скомпилировать все модели в один файл admin.py. Django не обнаружит этот файл по умолчанию. Другой способ сделать это, вы можете попробовать создать новое приложение "admin" и зарегистрировать каждую модель в этой папке. Я никогда не делал этого, потому что admin.py, выделенный в отдельное приложение, имеет свою собственную, очень важную цель.

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