Django ModelMultipleChoiceField字段从其queryset中显示

时间:2012-01-24 22:02:17

标签: django django-models django-forms django-templates

我有一个带有ModelMultipleChoiceField的ModelForm。

users = forms.ModelMultipleChoiceField(
  widget=forms.SelectMultiple(attrs={'class': 'chzn-select'}),
   queryset = User.objects.filter(...))

我的列表以用户名显示,作为模型的默认repr方法。

我希望显示first_namelast_name而不会重载repr方法,因为在其他情况下我需要用户名。

我不想获得values_list('id', 'first_name', 'last_name'),因为后来我没有获得save()上的模型列表,而是元组。

这有什么设置/黑客吗?

2 个答案:

答案 0 :(得分:4)

您可以通过覆盖label_from_instance来更改对象表示,label_from_instance是ModelMultipleChoiceField继承的ModelChoiceField类的一部分。

https://docs.djangoproject.com/en/1.3/ref/forms/fields/#django.forms.ModelChoiceField

https://docs.djangoproject.com/en/1.3/ref/forms/fields/#modelmultiplechoicefield

答案 1 :(得分:2)

好像你试图添加jquery选择的选择? 在https://github.com/theatlantic/django-chosen选择了django app django 有可用的字段: - ChosenChoiceField - ChosenModelChoiceField - ChosenMultipleChoiceField - ChosenModelMultipleChoiceField