Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Django模型布尔字段最初需要取消选中。initial=False required=False不起作用_Html_Django_Django Models_Django Forms - Fatal编程技术网

Html Django模型布尔字段最初需要取消选中。initial=False required=False不起作用

Html Django模型布尔字段最初需要取消选中。initial=False required=False不起作用,html,django,django-models,django-forms,Html,Django,Django Models,Django Forms,Forms.py class CheckPostedForm(forms.ModelForm): posted = forms.BooleanField(required=False, initial=False) postform = CheckPostedForm(request.POST, instance=author) if postform.is_valid(): postform.save() el

Forms.py

class CheckPostedForm(forms.ModelForm):
        posted = forms.BooleanField(required=False, initial=False)
       postform = CheckPostedForm(request.POST, instance=author)
       if postform.is_valid():
            postform.save()
       else:
            print 'Cannot save post form.'
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',
    }
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})
视图.py

class CheckPostedForm(forms.ModelForm):
        posted = forms.BooleanField(required=False, initial=False)
       postform = CheckPostedForm(request.POST, instance=author)
       if postform.is_valid():
            postform.save()
       else:
            print 'Cannot save post form.'
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',
    }
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})
型号.py

class CheckPostedForm(forms.ModelForm):
        posted = forms.BooleanField(required=False, initial=False)
       postform = CheckPostedForm(request.POST, instance=author)
       if postform.is_valid():
            postform.save()
       else:
            print 'Cannot save post form.'
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',
    }
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})
我想要一个复选框,它最初是未选中的,并且基于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>
模板

<div> {{ postform }} </div>
{{postform}

您已经在模板中对字段进行了硬编码。显然,Django无法更改您显式编写的HTML标记

您需要在模板中使用Django标记:

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

使用wiget怎么样
posted=forms.BooleanField(必需=False,widget=forms.CheckboxInput())
,你的
类Meta:model=ModelName
CheckPostedForm
中在哪里?@SancaKembang仍然是相同的结果。请更新你的完整代码…@SancaKembang请查看。为了清晰起见,我粘贴了html。这是Django动态生成的。我在模板中使用Django标记。然后你需要显示你的实际模板和完整视图。你的表单和模型都混淆了(例如,你在模型上发布的元看起来像是来自表单的)。请发布这两个视图的实际完整定义,以及视图的其余部分,例如显示
author
的来源。