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>
方法wigetを使用する方法については。.. '= forms.BooleanField(必要= Falseを、ウィジェット= forms.CheckboxInput())' –
は、とにかく投稿しましたあなたの 'class Meta: model = ModelName'は' CheckPostedForm'の中にありますか? –
@SancaKembangまだ同じ結果です。 – whatIf