将表单中的数据保存在数据库中.密钥错误



>models.py:

class Data(models.Model):
    name = models.CharField(max_length=250)
    is_big = models.BooleanField(default=False)

forms.py:

class DataForm(ModelForm):
    class Meta:
        model = Data
        exclude = ['is_big']

而不是从我创建的模型表单(在模板中)is_big

<div class="id_is_big-control-group control-group">
            <div class="controls">
                <label class="checkbox">
                    <input type="checkbox" disabled="disabled" checked="checked" name="is_big" id="id_is_big" /> <span>Is big?</span>
                </label>
         </div>

如何将此值保存在数据库中?

form = DataForm(request.POST)
if form.is_valid():
    d = form.save(commit=False)
    d.is_big = form.cleaned_data['is_big']
    d.save()

返回错误: /site/'is_big' 处的密钥错误

您已从模型窗体中排除了is_big。这就是为什么它不存在于cleaned_data中。您需要从POST获取值:

is_big = request.POST.get('is_big')

最新更新