自定义django表单字段不填充现有数据
希望这是一个简单的问题。我有一个带有自定义多选字段的表单。
class CustomChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return mark_safe('<b>%s:</b> <span class="context">%s</span>' % (obj.field1, obj.field2))
class MyForm(forms.ModelForm):
a_field = CustomChoiceField(widget=forms.CheckboxSelectMultiple,
queryset=MyModel.objects.all(),
required=False)
这会在我的模板中以我希望的方式获取我的复选框,<span>
内有<label>
。
但是,如果此表单表单具有与之关联的实例,则模型中保存的值不会检查相应的框。也就是说,如果有人选中了box1和box3,但没有选中box2,它会将所有3个复选框都取消选中,即使在管理员中我可以将box1和box3视为已选中。
从我的自定义选择字段更改为Django&#39; ModelMultipleChoiceField
摆脱了这个问题。
class MyForm(forms.ModelForm):
a_field = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple,
queryset=MyModel.objects.all(),
required=False)
现在我的模板box1和box3显示为已选中。
为什么我的自定义表单字段未显示现有数据?