我的一种形式有以下内容:
self.fields['advisor'].queryset = User.objects.filter(groups__name='advisor')
唯一的问题是它username
在下拉框中显示。我想做的是显示first_name
thenlast_name
以使其更具人类可读性。
有任何想法吗?
有ModelChoiceField
一个label_from_instance
方法可以在子类中更改以使用模型方法以外的__unicode__
方法。 https://docs.djangoproject.com/en/1.3/ref/forms/fields/#django.forms.ModelChoiceField.empty_label
根据这个文档,试试这个快速而肮脏的代码:
u = User.objects.filter(groups__name='advisor')
self.fields['advisor'].queryset = u.get_first_name_display() + " " + u.get_last_name_display()