2017-11-06 15 views
1

マイ状況:ジャンゴのBooleanFieldは、編集フォームでは動作しません

Models.py

class Box(models.Model): 
    is_empty = models.BooleanField(default=False) 
    upload_date = models.DateTimeField(auto_add_now=True) 

Forms.py

class BoxForm(forms.ModelForm): 
    class Meta: 
     model = Box 
     fields = (is_empty,) 

Views.py

def edit_box(request, pk): 
    box = get_object_or_404(Box, pk=pk) 
    if request.method == 'POST': 
     form = BoxForm(request.POST, instance=box) 
     if form.is_valid(): 
      form.save() 
     return redirect('home') 
    else: 
     form = BoxForm(instance=box) 
    return render(request, 'form.html', {'form': form}) 

問題は、テンプレートフォームに入力したときにチェックボックスの値を変更したいのですが、無効になっていると思われます。その理由はわかりません。

EDIT Template.html

... 
<form class="row gap-y" method="POST">{% csrf_token %} 
    <div class="col-2"> 
    <div class="checkbox"> 
     {% render_field form.is_empty class="form-control" %} 
     <label for="id_description-is_empty">Is empty?</label> 
    </div> 
    </div> 
    <div class="col-2"> 
     <button class="btn btn-bold btn-primary" type="submit">Save</button> 
    </div> 
</form> 
... 
+0

代わりに、フィールドが['is_empty'] 'である –

+0

それは動作しません、私はチェックボックスの値を変更することはできません –

+0

plsはテンプレートコードを表示 – Davy

答えて

0

最後に、私は解決策を達成:チェックボックスで

... 
<form class="row gap-y" method="POST">{% csrf_token %} 
    <div class="col-2"> 
    <div class="checkbox"> 
     {{ form.is_empty }} 
     <label for="id_is_empty">Is empty?</label> 
    </div> 
    </div> 
    <div class="col-2"> 
     <button class="btn btn-bold btn-primary" type="submit">Save</button> 
    </div> 
</form> 
... 

:私は同じようtemplates.htmlを変更する必要が

をフィールドclass = "control-form"をレンダリングする必要はありません。次に、ブラウザコンソールを使用して、フィールドidを探し、 paramのラベルにコピーします。

関連する問題