处理 Django 教程“编写你自己的 Django 应用程序”,我在第 2 部分。
在中途,它指示我向管理员添加一行,以便管理员不仅可以识别 Poll(和 PollAdmin,本教程一直在为一些自定义投票呈现选项配置),还可以识别 Choice。这是(简短的)更新的 admin.py:
from polls.models import Poll
from polls.models import Choice
from django.contrib import admin
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
admin.site.register(Poll, PollAdmin)
admin.site.register(Choice)
看到这里,我想不通为什么我不能简单地写
admin.site.register(Poll, PollAdmin, Choice)
除了这给了我一个 TypeError,因为
register() takes at most 3 arguments (4 given)
这似乎真的......对我来说是任意的。我不明白为什么 register 最多只接受 3 个参数。我对 Django 的理解仍然处于非常巫术、货物崇拜的水平,所以我明白了。没有。工作。但我想知道是否可以阐明为什么我不能同时从 admin.site 中提取所有三个元素。