我的目标是创建一个显示多个复选框并允许用户选择一个或多个选项的表单。所有这些选择都需要翻译。
在使用非模型驱动形式时,CHOICES
它按预期工作。
COLOR_CHOICES = (
(1, _('Red')),
(2, _('Black')),
)
由于我的表单是基于模型的,而不是MultipleChoiceField
我必须使用ModelMultipleChoiceField
.
colors = forms.ModelMultipleChoiceField(
queryset=Colors.objects, # <- This needs to exist in the database so can't use CHOICES
widget=forms.CheckboxSelectMultiple(),
required=False
)
由于ModelMultipleChoiceField
查询数据库以获得选择,我必须首先将数据放在数据库中。
我可以想到两种解决方案来解决这个问题,但我不确定如何让它发挥作用(可能有一种我不知道的不同方法):
创建一个夹具并翻译它(翻译是这里的问题)
使用
queryset
选项ModelMultipleChoiceField