2013-01-23 83 views
0

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() 

返回錯誤:KeyError異常在/網站/ 'is_big'

回答

1

您已經排除從模型的形式is_big。這就是爲什麼它不存在於cleaned_data。你需要從POST得到的值:

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

我創建了自定義輸入(是在我的問題)。我排除了is_big – webfanks

+0

爲什麼你在表單中需要時排除它? –

+0

因爲我不想使用'models forms'中生成的代碼。我在我的模板手冊 – webfanks