从不同的应用程序导入模型到admin Django



我正在尝试为my project创建一个管理页面,包括app1app2

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

Inmyproject/urls.py

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

]

Inmyproject/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 in admin.py文件中与app1目录app1/admin.py相关,你需要放置以下代码

from django.contrib import admin
from app1.models import User

admin.site.register(User)

和在app2中admin.py中与app2相关的目录app2/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会在相应的app文件夹中检测到它,并反映在admin页面中。

但是,如果您在这里尝试的是在一个admin.py中编译每个模型。Django默认不会检测到这个文件。另一种方法是,你可以尝试创建一个新应用"admin"注册文件夹里的每个模型。我从来没有这样做过,因为admin.py分离在自己的应用程序中有自己非常重要的目的。

最新更新