Django管理表单不显示所有实例数据

时间:2012-06-20 18:27:13

标签: python django django-admin

我的django管理表单没有显示给定对象数据的正确初始值。我已经尝试修改表单以在加载时显式设置初始值,但这也没有效果。我的代码如下所示:

DISCOUNT_OVERRIDE_CHOICES = (
        (None, ""),
        (Decimal('10'), _('10%')),
        (Decimal('20'), _('20%')),
        (Decimal('30'), _('30%')),
        (Decimal('40'), _('40%')),
        (Decimal('50'), _('50%')),
    )
    self.fields['discount'].choices = \
            DISCOUNT_OVERRIDE_CHOICES

    if self.instance.discount:
        self.initial['discount'] = \
                self.instance.discount

上面的代码是表单的一部分,我稍后在相应的Admin模型中使用form = MyForm调用。会发生什么情况是管理页面将正确加载并显示所有相应的数据,但“折扣”字段的初始值将始终为空字符串,无选项,并且永远不会准确表示与对象一起存储的折扣百分比其数据填充表格。这个字段也是它发生的唯一字段,即使我没有覆盖可用的选项,问题仍然存在(在这种情况下,总是在页面加载时选择10%的选项)

有什么想法?提前谢谢。

1 个答案:

答案 0 :(得分:0)

这部分代码错误

self.initial['discount'] = \
                self.instance.discount

你应该做

self.fields['discount'].initial = \
                self.instance.discount