Checkbox SelectMultiple을 사용하면 input:cliccked+label이 효력을 상실합니다/

4232 단어 #django
Django의 창 필드에서widget 매개 변수에 Checkbox SelectMultiplee를 설정하면 템플릿에서 여러 type = checkbox의 input을 선택할 수 있습니다.
forms.py
class ExampleForm(forms.ModelForm):
    choice = forms.ModelMultipleChoiceField(required=False, queryset=ChoiceTag.objects, widget=forms.CheckboxSelectMultiple)
    class Meta:
        model = Example
        fields = ['choice']
views.py
from .forms import ExampleForm
...
class ProfileEdit(LoginRequiredMixin, CreateView):
    def post(self, request, *args, **kwargs):
        form = ExampleForm()
        return render(request, "app/index.html", { "form" : form })
template(index.html)
{{ form.choice }}
html
<ul>
 <li>
   <label for="id_example">
     <input type="checkbox" name="example" id="id_example">
   </label>
 </li>
  ...
</ul>
매우 간단합니다/

그러나 label에 input이 있으면 lnput:cliccked+label은 작용하지 않습니다.

다음 방법으로 {form.choice} 부분의 템플릿을 수정하십시오.
<ul>
{% for i in form.choice %}
  <li>
    {{ i.tag }}
    <label for="{{ i.id_for_label }}">{{ i.choice_label }}</label>
  </il>
{% endfor %}
</ul>
{i.tag} 부분에는 input 라벨이 있고 {i.id for label}에는 input 라벨이 있으며 {i.chioice label}에는 각각 선택한 이름이 있습니다.

좋은 웹페이지 즐겨찾기