Django Admin Form中的十进制字段

Rik*_*ade 2 django django-models django-admin

我有一个模型,其中包括一个字段:

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)
Run Code Online (Sandbox Code Playgroud)

我现有的Django表单在我的应用程序中工作,允许用户成功输入他们的纳税括号.但是,我需要通过Django Admin界面手动添加一些用户信息,但是当我选择10.5或17.5值时会出现如下错误:

Value Decimal('10.5') is not a valid choice
Run Code Online (Sandbox Code Playgroud)

我从阅读Django文档中了解到,Admin表单将DecimalField类型视为"文本"输入,但我不确定是否应该查看模型定义或管理表单的自定义.我目前没有在此项目中定义admin.py以进行管理站点自定义.

Dan*_*man 6

您已将字段选项定义为浮点数.浮点数10.5不等于小数Decimal("10.5").

将选项定义为字符串或小数:

TAX_CHOICES = (
    (Decimal("10.5"), '10.5%'),
    (Decimal("17.5"), '17.5%'),
    (Decimal("30"), '30%'),
    (Decimal("33"), '33%'),
)
Run Code Online (Sandbox Code Playgroud)