6

ここで何が間違っているのかわかりません。私のエラーは次のとおりです: ImproperlyConfigured at /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

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 に答える