我正在写django项目,它有几个小应用程序。我想使用默认的管理站点,所以我的admin.py会非常简单。不幸的是,如果我把它放到项目目录中它不起作用 - 它必须在app目录中。现在我有两个选择:
将一个admin.py放在app的一个目录中 - 它会起作用,但逻辑上不正确
在每个应用目录中放置几个admin.py文件(仅包含来自某个应用的模型)
有没有办法强制django在项目根目录中查找这个文件?
答案 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)