2

我正在编写有几个小应用程序的 django 项目。我想使用默认的管理站点,所以我的 admin.py 会很简单。不幸的是,如果我把它放到项目目录中它不起作用 - 它必须在 app 目录中。现在我有两个选择:

  • 将一个 admin.py 放在应用程序的一个目录中 - 它会起作用,但它在逻辑上是不正确的

  • 在每个应用程序目录中放置几个​​ admin.py 文件(仅包含来自某个应用程序的模型)

有没有办法强制 django 在项目根目录中查找这个文件?

4

1 回答 1

1

您可以将文件放入“默认”应用程序(创建项目时创建的应用程序)。然后,您可以从其他应用程序导入模型并在该单个 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)
于 2014-04-14T23:49:15.920 回答