2017-01-29 7 views
0

Forms.pyDjango Modelブールフィールドは、最初はチェックを外す必要があります。必須= FALSE FALSE =初期こと

class CheckPostedForm(forms.ModelForm): 
     posted = forms.BooleanField(required=False, initial=False) 

Views.py

 postform = CheckPostedForm(request.POST, instance=author) 
     if postform.is_valid(): 
      postform.save() 
     else: 
      print 'Cannot save post form.' 

Models.pyが動作していない

posted = models.CharField(max_length=2, blank=True, null=True) 
class Meta: 
    model = TmpPlInvoice 
    exclude = ['net_amt', 'post_date', 'address', 'particulars', 'pos_code', 'acct', 'cust', 'voucher_id', 'voucher_date', 'post_date'] 
    labels = { 
     'posted': 'Posted', 
    } 

私が欲しいですチェックボックスは最初はチェックされていません。 DBからのth値に基づいてチェックする/チェックを外します。私が何をしていても、フォームは常にchecked = "checked"として出てきます。

印刷postformは、私はたくさんのすべての場所を検索しました。この、

<tr><th><label for="id_posted">Posted:</label></th><td><input checked="checked" id="id_posted" name="posted" type="checkbox" value="n" required /></td></tr> 

を与え、ドキュメントには、我々は条件を適用したい場合はfalse =必要な最初はfalseでなければならないことを言います。

詳細 Views.py

def master_detail_posted(request): 
    if request.method == 'GET': 
     author = TmpPlInvoice.objects.get(id=1) 
     postform = CheckPostedForm(instance=author) 
     return render(request,'main.html' ,{'postform': postform}) 
    if request.method == 'POST': 
     author = TmpPlInvoice.objects.get(id=1) 
     postform = CheckPostedForm(request.POST, instance=author) 
     print postform 
     if postform.is_valid(): 
      logger.info('saving post form %s', postform.cleaned_data) 
      postform.save() 
     else: 
      logger.info('post form is not valid %s %s', postform.errors, request.POST) 
     return render(request,'main.html' ,{'postform': postform}) 

あなたは、テンプレート内のフィールドをハードコーディングしたテンプレート

<div> {{ postform }} </div> 
+0

方法wigetを使用する方法については。.. '= forms.BooleanField(必要= Falseを、ウィジェット= forms.CheckboxInput())' –

+0

は、とにかく投稿しましたあなたの 'class Meta: model = ModelName'は' CheckPostedForm'の中にありますか? –

+0

@SancaKembangまだ同じ結果です。 – whatIf

答えて

0

。明らかに、Djangoは明示的に記述したHTMLタグを変更することはできません。あなたのテンプレートでDjangoのタグを使用する必要が

<td>{{ form.posted }}</td> 
+0

私は、明確にするためにHTMLを貼り付けました。これはDjangoが動的に生成するものです。私はテンプレートでDjangoタグを使用しています。 – whatIf

+0

次に、実際のテンプレートと*フル*表示を表示する必要があります。 –

+0

私はコードを提出しました。 – whatIf

関連する問題