您可以将该文件放入您的“默认”应用程序(创建项目时创建的应用程序)。然后,您可以从其他应用程序导入模型,并在单个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)
为什么你会不会想这样做的正确方法,即你的第二个选项?有什么好处? – 2012-07-24 09:33:15
我想保持我的项目树尽可能干净。而且这也意味着几次编写相同的“代码”......至少导入“管理员”。 – middleofdreams 2012-07-24 10:15:48
正常程序是在每个应用程序目录中都有一个admin.py。如果你认为这会让你的项目树混乱起来......呃,......这样想吧 - 关键是每个应用程序都是一个独立的单元,可能会被不同的项目使用。因此,每个'admin.py'都需要分开。并认真......从django.contrib导入管理员 - 这实际上不是代码重复。 – scytale 2012-07-24 11:49:08