我有一个包含字段的模型:
TAX_CHOICES = (
(10.5, '10.5%'),
(17.5, '17.5%'),
(30, '30%'),
(33, '33%'),
)
taxBracket = models.DecimalField(max_digits=4, decimal_places=2, choices=TAX_CHOICES, default=10.5)
我现有的Django表单在我的应用程序中工作,允许用户成功输入他们的纳税包。但是,我需要通过Django Admin界面手动添加一些用户信息,但是当我选择10.5或17.5值时会出现如下错误:
Value Decimal('10.5') is not a valid choice
我从阅读Django文档中了解到,Admin表单将DecimalField类型视为“文本”输入,但我不确定是否应该查看模型定义或管理表单的自定义。我目前没有在此项目中定义admin.py以进行管理站点自定义。
答案 0 :(得分:7)
您已将字段选项定义为浮点数。 float 10.5
不等于小数Decimal("10.5")
。
将选项定义为字符串或小数:
TAX_CHOICES = (
(Decimal("10.5"), '10.5%'),
(Decimal("17.5"), '17.5%'),
(Decimal("30"), '30%'),
(Decimal("33"), '33%'),
)