我正在编写有几个小应用程序的 django 项目。我想使用默认的管理站点,所以我的 admin.py 会很简单。不幸的是,如果我把它放到项目目录中它不起作用 - 它必须在 app 目录中。现在我有两个选择:
将一个 admin.py 放在应用程序的一个目录中 - 它会起作用,但它在逻辑上是不正确的
在每个应用程序目录中放置几个 admin.py 文件(仅包含来自某个应用程序的模型)
有没有办法强制 django 在项目根目录中查找这个文件?
我正在编写有几个小应用程序的 django 项目。我想使用默认的管理站点,所以我的 admin.py 会很简单。不幸的是,如果我把它放到项目目录中它不起作用 - 它必须在 app 目录中。现在我有两个选择:
将一个 admin.py 放在应用程序的一个目录中 - 它会起作用,但它在逻辑上是不正确的
在每个应用程序目录中放置几个 admin.py 文件(仅包含来自某个应用程序的模型)
有没有办法强制 django 在项目根目录中查找这个文件?
您可以将文件放入“默认”应用程序(创建项目时创建的应用程序)。然后,您可以从其他应用程序导入模型并在该单个 admin.py 文件中使用它们。例如,下面的文件将适用于默认应用程序和“课程”、“论坛”应用程序。
管理员.py
from django.contrib import admin
from models import UserProfile, Sponsor
from courses.models import Course
from forum.models import ForumTopic
admin.site.register(UserProfile)
admin.site.register(Sponsor)
class CourseAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("code", "name",)}
admin.site.register(Course, CourseAdmin)
class ForumTopicAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
admin.site.register(ForumTopic, ForumTopicAdmin)