2012-05-22 173 views
2

我已經在我的形式之一如下:Django的查詢集

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

唯一的問題是,它顯示在下拉框中username。我想要做的是顯示first_name,然後last_name,使其更具人性化。

任何想法?

回答

3

ModelChoiceFieldlabel_from_instance方法,該方法可以在子類更改爲使用其他的東西比模型__unicode__方法。 https://docs.djangoproject.com/en/1.3/ref/forms/fields/#django.forms.ModelChoiceField.empty_label

+0

我瞭解這些文檔是怎麼說的,但是如何在'forms.py'中使用它? – Sevenearths

+0

謝謝...我現在明白了。我可以用'advisor = UserModelChoiceField(queryset = User.objects.filter(groups__name ='advisor'))''在'forms.py'中實現它。感謝:http://stackoverflow.com/a/2959870/563247 – Sevenearths

0

根據這一doc,試試這個快速和骯髒的代碼:

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

哼哼......它不喜歡'get_first_name_display()' – Sevenearths

+0

請編輯您的文章添加用戶的模型。 – Yohann

+0

這是django附帶的默認用戶 – Sevenearths