私のフォームの1つに次のものがあります。
self.fields['advisor'].queryset = User.objects.filter(groups__name='advisor')
唯一の問題はusername
、ドロップダウン ボックスに が表示されることです。私がやりたいのは、人間が読みやすいようにfirst_name
thenを表示することです。last_name
何か案は?
にはModelChoiceField
、label_from_instance
モデル メソッド以外のものを使用するようにサブクラスで変更できるメソッドがあります__unicode__
。 https://docs.djangoproject.com/en/1.3/ref/forms/fields/#django.forms.ModelChoiceField.empty_label
このdocによると、次の簡単で汚いコードを試してください。
u = User.objects.filter(groups__name='advisor')
self.fields['advisor'].queryset = u.get_first_name_display() + " " + u.get_last_name_display()