我的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%的选项)
有什么想法?提前谢谢。
答案 0 :(得分:0)
这部分代码错误
self.initial['discount'] = \
self.instance.discount
你应该做
self.fields['discount'].initial = \
self.instance.discount