类没有名为'p'的字段

时间:2018-04-10 08:35:58

标签: wagtail

我在wagtail_hooks.py中有以下模型类和list_filter,当我创建“Spieler”时,我收到此错误

enter image description here

这是我的追溯 http://dpaste.com/3A5QAH0

#models.py
POSITIONS_SP = (
    ('th', 'TH'),
    ('st', 'ST'),
    ('vt', 'VT'))
POSITIONS_SP_LOOKUP = dict(POSITIONS_SP)

class Spieler(models.Model):
    name = models.CharField(max_length=128)
    vorname = models.CharField(max_length=128)
    position = models.CharField(max_length=128, choices=POSITIONS_SP)

    panels = [
        FieldPanel('name', classname="col6"),
        FieldPanel('vorname', classname="col6"),
        FieldPanel('position', classname="col4"),
    ]

#wagtail_hooks.py
class SpielerModelAdmin(ModelAdmin):
    model = Spieler
    menu_label = 'Spieler'
    menu_icon = 'group'
    list_display = ('name', 'vorname', 'position')
    search_fields = ('name', 'vorname')
    list_filter = ('position')

当我删除list_filter时,一切正常。

1 个答案:

答案 0 :(得分:0)

当你的元组中只有一个项目时,你需要添加一个尾随逗号:

list_filter = ('position',)

否则,Python会将括号解释为含义"首先对其进行评估" (正如您在计算(2 + 2) * 3之类的内容时所使用的那样),给出结果'position',并尝试将该字符串解释为列表 - 因此它最终会循环遍历{}中的每个字符{1}}。

或者,您可以使用列表表示法使其明确:

'position'