我有一个任务列表,能够分配用户。所以我有数据库中的用户模型的外键。但是,默认显示是在下拉菜单中的用户名,我想显示全名(倒数第一)而不是用户名。如果外键指向我自己的类中的一个,我可以更改模型中的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