首页 > 解决方案 > 小数字段的选择

问题描述

模型.py

class SomeModel(models.Model):
    price = models.DecimalField(decimal_places=1, max_digits=8)

表格.py

class SomeForm(forms.ModelForm):
    title = forms.CharField(label=_("Title"), required=False)
    price = forms.ChoiceField(choices=[], label=_("Price"))

    class Meta:
        model = SomeModel
        exclude = ('some_fields',)

    def __init__(self, min_price = 10, *args, **kwargs):
        super(SomeForm, self).__init__(*args, **kwargs)

        price_field = self.fields['price']
        price_field.choices = (
            (i, i) for i in xrange(min_price, 200, 5))

这会引发错误,因为表单发布时的价格值是一个字符串,它没有保存在Decimal模型的字段中。

生成器的类型转换在这里不起作用。解决方案是什么?

标签: pythondjango

解决方案


推荐阅读