在模型中,我定义了以下字段:
manager = models.BooleanField(choices=BOOL_TYPE_CHOICES, default=BOOL_TYPE_NO)
形式:
'manager': RadioSelectWidget(choices=BOOL_TYPE_CHOICES)
常量
BOOL_TYPE_NO = 0
BOOL_TYPE_YES = 1
BOOL_TYPE_CHOICES = (
(BOOL_TYPE_NO, 'No'),
(BOOL_TYPE_YES, 'Yes')
)
插件:
class RadioSelectWidget(forms.RadioSelect):
template_name = 'widgets/radio-select.html'
-
{% with id=widget.attrs.id %}
<ul{% if id %} id="{{ id }}"{% endif %} class="list--inline list--reset">
{% for group, options, index in widget.optgroups %}
{% if group %}
<li class="list__item">{{ group }}
<ul{% if id %} id="{{ id }}_{{ index }}"{% endif %} class="list--inline list--reset">
{% endif %}
{% for option in options %}
<li class="list__item">{% include option.template_name with widget=option %}</li>
{% endfor %}
{% if group %}</ul></li>{% endif %}{% endfor %}
</ul>
{% endwith %}
我使用自定义小部件只是为了向Django html添加一些类。
问题不在于小部件,因为我使用与SmallInteger相同的小部件,没有问题。
但是使用布尔值,一次更新,没有选择任何选项,在创建就可以,选择默认值。