6

我无法弄清楚我在这里做错了什么。我的错误是:在 /admin/ ' CategoryAdmin.fields ' 的错误配置必须是列表或元组。

CategoryAdmin.fields 不是元组吗?我读错了吗?

管理员.py ..

class CategoryAdmin(admin.ModelAdmin):
    fields = ('title')
    list_display = ('id', 'title', 'creation_date')

class PostAdmin(admin.ModelAdmin):
    fields = ('author', 'title', 'content')
    list_display = ('id', 'title', 'creation_date')

admin.site.register(
    models.Category, 
    CategoryAdmin
)
admin.site.register(
    models.Post, 
    PostAdmin
)
4

4 回答 4

14

不它不是。您需要添加一个逗号:

fields = ('title',)

正是逗号使它成为一个元组。括号在这里实际上是可选的:

>>> ('title')
'title'
>>> 'title',
('title',)

括号当然仍然是个好主意,带括号的元组更容易在视觉上发现,并且括号将函数调用中的元组与其他参数区分开来(foo(('title',), 'bar')不同于foo('title', 'bar'))。

于 2013-03-14T14:30:03.623 回答
4

它应该是:

fields = ('title', )

例子:

In [64]: type(('title'))
Out[64]: str

In [65]: type(('title', ))
Out[65]: tuple
于 2013-03-14T14:30:10.493 回答
3

用这个替换它:

fields = ('title', )
于 2013-03-14T14:30:11.450 回答
3

标题后需要逗号:

fields = ('title',)
于 2013-03-14T14:30:17.217 回答