我有一个查询我的数据库的表单,如下所示:
class Pull(forms.Form):
select = forms.ModelChoiceField(queryset=OrderEntry.objects.values_list
('val_a', 'val_b'), required=True)
默认情况下,它会显示值,但它真的很丑,看起来并不好玩。在网页上,它在下拉菜单中显示如下:
('A','B')
('C','D')
我希望它看起来像这样:
A | B
C | D
或者说,无论如何,用户很容易阅读。有没有办法实现这个目标? 谢谢!
答案 0 :(得分:2)
子类ModelChoiceField并定义label_from_instance
以返回所需的值。
class MyModelChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "{} | {}".format(obj.val_a, obj.val_b)
现在使用标准查询集:
select = MyModelChoiceField(queryset=OrderEntry.objects.all(), required=True)