テンプレートには複数のチェックボックスがあり、レンダリングに値が含まれている場合、デフォルトで選択がチェックされます。1.10で問題なく動作します。
フォーム.py:
class NewForm(forms.Form):
project = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
queryset=Project.objects.filter(enable=True)
)
テンプレート:
{% for p in form.project %}
<label for="{{ p.id_for_label }}">
<input type="checkbox" name="{{ p.name }}" id="{{ p.id_for_label }}"
value="{{ p.choice_value }}"
{% if p.choice_value|add:"0" in form.project.initial %} checked{% endif %}>
<p>{{ p.choice_label }}</p>
</label>
{% endfor %}
ビュー.py:
def order_start(request, order_id):
if request.method == 'POST':
form = NewForm(request.POST)
if form.is_valid():
order.end_time = timezone.now()
order.save()
order.project = form.cleaned_data['project']
order.save()
return HttpResponsec(order.id)
else:
form = NewForm(initial={
'project': [p.pk for p in order.project.all()],
})
return render(request, 'orders/start.html', {'form': form, 'order': orderc})
Django 1.11 にアップグレードする{{ p.name }}
と、{{ p.choice_value }}
何も返されません。1.11 で が削除されたことは知ってchoice_value
いますが、この問題を解決するにはどうすればよいですか?
1.10 https://docs.djangoproject.com/en/1.10/_modules/django/forms/widgets/
1.11 https://docs.djangoproject.com/en/1.11/_modules/django/forms/widgets/