我有一個任務列表,能夠分配用戶。所以我有數據庫中的用戶模型的外鍵。但是,默認顯示是在下拉菜單中的用戶名,我想顯示全名(倒數第一)而不是用戶名。如果外鍵指向我自己的類中的一個,我可以更改模型中的str函數,但User是django身份驗證模型,所以我不能直接輕鬆地直接更改它?如何在django中更改顯示文字admin foreignkey dropdown
任何人有任何想法如何做到這一點?
非常感謝!
我有一個任務列表,能夠分配用戶。所以我有數據庫中的用戶模型的外鍵。但是,默認顯示是在下拉菜單中的用戶名,我想顯示全名(倒數第一)而不是用戶名。如果外鍵指向我自己的類中的一個,我可以更改模型中的str函數,但User是django身份驗證模型,所以我不能直接輕鬆地直接更改它?如何在django中更改顯示文字admin foreignkey dropdown
任何人有任何想法如何做到這一點?
非常感謝!
您可以爲您的工作模式,它會顯示你喜歡的用戶列表中選擇一個新的ModelForm(此代碼假定一個名爲任務模型與「用戶」屬性):
USERS = [(user, user.get_full_name()) for user in User.objects.all()]
class TaskAdminForm(forms.ModelForm):
class Meta:
model = Task
user = forms.ChoiceField(choices=USERS)
然後,告訴的ModelAdmin類以使用新的形式:
class TaskAdmin(admin.ModelAdmin):
form = TaskAdminForm
還有另一種選擇:
USERS = [(user.id, user.get_full_name()) for user in User.objects.all()]
USERS.insert(0, ('', '----'))
class TaskAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(TaskAdminForm, self).__init__(*args, **kwargs)
self.fields['user'].choices=USERS