这不是一个元组吗?

时间:2013-03-14 14:29:04

标签: python django tuples

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

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

admin.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 个答案:

答案 0 :(得分:14)

不,不是。您需要添加逗号:

fields = ('title',)

逗号使这个元组成为元组。括号实际上只是可选的:

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

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

答案 1 :(得分:4)

应该是:

fields = ('title', )

示例:

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

In [65]: type(('title', ))
Out[65]: tuple

答案 2 :(得分:3)

替换为:

fields = ('title', )

答案 3 :(得分:3)

标题后需要逗号:

fields = ('title',)