0

我在开始时有以下字段的模型

class Option(models.Model):
    description = models.CharField(max_length = 100, null = False, blank = False)
    price = models.PositiveIntegerField(null = False, blank = False, editable = True)

起初,我设计了价格字段为的模型PositiveIntegerField,但是当我们输入诸如5.36, 56.2314等的十进制值时,我得到了一个Keyerror : 'invalid'

所以我决定将字段从PositiveIntegerFieldtoDecimalField更改为如下所示的价格字段

price = models.DecimalField(max_digits = 6, decimal_places = 2, null = False, blank = False)  # price in dollars

但是,当我们尝试输入 32.56、5.36 等十进制值并尝试保存记录时,它会抛出如下错误

u'max_digits'
Request Method: POST
Request URL:    http://127.0.0.1:8000/option/new/192/
Django Version: 1.5.4
Exception Type: KeyError
Exception Value:    
u'max_digits'
Exception Location: /home/user/Envs/proj/local/lib/python2.7/site-packages/django/forms/fields.py in validate, line 320

views.py中的错误23

21 if request.method == 'POST':
22        option_formset = OptionFormset(request.POST, request.FILES)
23        if option_formset.is_valid(): 

keyerror那么,当我将价格从DecimalField 更改为时,为什么我会面临这种情况PositiveIntegerField?如何避免这种情况,需要做任何额外的工作来更改字段(如果它已经是不同的类型)

表格.py

class OptionForm(ModelForm):
    class Meta:
        model = Option

OptionFormset = formset_factory(OptionForm, max_num=10, formset=RequiredFormSet)
4

0 回答 0