gpt4 book ai didi

django - 以 Django 形式显示全名,而不是用户名

转载 作者:行者123 更新时间:2023-12-04 22:09:20 25 4
gpt4 key购买 nike

我有一个 Django 应用程序,其中包含具有 django.contrib.auth.models 中定义的 User 对象的外键的事件和对象。在此过程中,我获得了用户的 username 属性,即登录 ID。

由于 User 对象存储全名,我如何使表单上的 ChoiceField 显示用户的全名,而不是用户名,但在表单发布后仍将其链接回正确的 User 对象?

最佳答案

如果您有一个常规的 ChoiceField,则不确定以下是否有效,但如果您有一个 modelChoiceField,您可以执行以下操作:

class UserModelChoiceField(forms.ModelChoiceField):
"""
Extend ModelChoiceField for users so that the choices are
listed as 'first_name last_name (username)' instead of just
'username'.

"""
def label_from_instance(self, obj):
return "%s (%s)" % (obj.get_full_name(), obj.username)


class XYZForm(forms.Form):
...
xyz = UserModelChoiceField(User.objects.all())

关于django - 以 Django 形式显示全名,而不是用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com