기존 애플리케이션을 버전 1.4에서 1.11로 업그레이드하려고합니다. MultipleChoiceField가 데이터베이스에 저장되는데 템플릿이 검사 대상으로 렌더링되지 않는 문제가 있습니다.Django 1.11 템플릿이 MultipleChoiceField를 올바르게 렌더링하지 않습니다. django 1.4와 호환됩니다.
models.py
class TestModel(models.Model):
test = models.CharField(blank=True, max_length=200)
forms.py
from django import forms
from django.forms import ModelForm
from app.models import TestModel
CHOICES = (
('1', 'Select All'),
('a', 'choice 1'),
('k', 'choice 2'),
)
class TestForm(ModelForm):
test = forms.MultipleChoiceField(choices=CHOICES, required=False, widget=forms.CheckboxSelectMultiple()
)
class Meta:
model = TestModel
fields = '__all__'
form1 = TestForm(data={'test': ['a','k']})
나는 이것이 내가 올바른 HTML 출력을 얻을 manage.py 쉘을 사용하여 실행
인쇄 Form1에
<tr>
<th><label>Test:</label></th>
<td>
<ul id="id_test">
<li>
<label for="id_test_0"><input type="checkbox" name="test" value="1" id="id_test_0" onclick="selectAll(this);" />Select All</label>
</li>
<li>
<label for="id_test_1"><input type="checkbox" name="test" value="a" checked id="id_test_1" onclick="selectAll(this);" />choice 1</label>
</li>
<li>
<label for="id_test_2"><input type="checkbox" name="test" value="k" checked id="id_test_2" onclick="selectAll(this);" />choice 2</label>
</li>
</ul>
</td>
</tr>
코드에 checked 속성이 있는지 확인하십시오.
템플릿
<div id="Scrolldrive2">{{form1.test}}</div>
선택한 체크 박스의 UI에 렌더링되지 않는다.