我的其中一个表格中有以下内容:
self.fields['advisor'].queryset = User.objects.filter(groups__name='advisor')
唯一的问题是它会在下拉框中显示username
。我想要做的是显示first_name
然后last_name
以使其更具人性化。
有什么想法吗?
答案 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()