Django查询集

时间:2012-05-22 19:32:00

标签: python django

我的其中一个表格中有以下内容:

self.fields['advisor'].queryset = User.objects.filter(groups__name='advisor')

唯一的问题是它会在下拉框中显示username。我想要做的是显示first_name然后last_name以使其更具人性化。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

ModelChoiceField有一个label_from_instance方法,可以在子类中更改该方法,以使用模型__unicode__方法之外的其他方法。 https://docs.djangoproject.com/en/1.3/ref/forms/fields/#django.forms.ModelChoiceField.empty_label

答案 1 :(得分:0)

根据这个doc,试试这个快速而又脏的代码:

u = User.objects.filter(groups__name='advisor')
self.fields['advisor'].queryset = u.get_first_name_display() + " " + u.get_last_name_display()