2013-02-07 71 views
0
if request.method == 'POST': 
    try: 
     form = ExampleForm(request.POST, 
           instance=Example.objects.get(user=request.user)) 
    except: 
     form = ExampleForm(request.POST) 
    if form.is_valid(): 
     m = form.save(commit=False) 
     is_ok = request.POST.get('is_ok') 
     m.is_ok = is_ok 
     m.user = request.user 
     m.save() 

如何添加場is_okinstance=Example.objects.get(user=request.user)如何從模型表單添加自己的表單字段到實例?

注:我不能這個字段添加到模型的形式。

如果我改變現有的數據,我is_ok值更改默認

編輯:

<input type="checkbox" disabled="disabled" checked="checked" name="is_ok" id="id_is_ok"/> 

如果輸入無效,我is_ok = request.POST.get('is_ok') =無

+0

我不確定你的意思是我將該字段添加到該分配中。請你能澄清這個好一點嗎? –

+0

更新的問題 – amarkon

+1

您的問題不明確。你可以把你的型號代碼 – catherine

回答

1

你真的應該在這樣做您的ExampleForm類的聲明。我假設班級看起來像這樣

from your_app.models import ExampleModel 
from django.forms import ModelForm 

class ExampleForm(ModelForm): 
    class Meta: 
     model = ExampleModel 

你只需要聲明窗體上的字段。喜歡的東西 -

class ExampleForm(ModelForm) 
    is_ok = forms.BooleanField() 
    class Meta: 
     model = ExampleModel 

Form類將現在處理的is_okinput元素的創作,就像它爲所有其他領域,但它會覆蓋在模型上設置 - 它贏得」不再被禁用(更多信息請參見docs)。

相關問題