Django管理站点 - admin.py的位置

时间:2012-07-24 09:25:11

标签: django django-admin

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

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以将文件放在“默认”应用程序(创建项目时创建的应用程序)中。然后,您可以从其他应用程序导入模型,并在该单个admin.py文件中使用它们。例如,下面的文件适用于默认应用和“课程”,“论坛”应用。

admin.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)