当前位置: 首页 > 面试题库 >

更改Django ModelChoiceField以显示用户的全名而不是用户名

伍玮
2023-03-14
问题内容

我的Django应用程序中有一个表单(不在admin中),该表单允许工作人员从下拉列表中选择用户。

forms.ModelChoiceField(queryset = User.objects.filter(is_staff=False), required = False)

问题在于该下拉列表按用户名显示用户,而我希望它从user.get_full_name()中显示其全名,并且仅在不可用时才使用用户名。我只需要在此页面上进行此更改,在其他地方(例如admin),我不在乎它是否使用用户名。

有办法吗?


问题答案:

你可以设置一个自定义ModelChoiceField,该自定义将返回你想要的任何标签。

将类似这样的内容放置在fields.py或任何适用的地方。

class UserModelChoiceField(ModelChoiceField):
    def label_from_instance(self, obj):
         return obj.get_full_name()

然后在创建表单时,只需使用该字段

 UserModelChoiceField(queryset=User.objects.filter(is_staff=False), required = False)


 类似资料:
  • 问题内容: 在nodeJS中,我正在使用护照模块进行身份验证。我想显示当前登录用户的用户名。 我尝试了以下代码: 和 有关更多信息,请参见:http : //passportjs.org/docs/profile 但这是行不通的。有什么建议? 谢谢 问题答案: 用户(由verify回调提供)在处被设置为请求的属性。 用户的任何属性可以通过对象来访问,你的情况和。 如果您使用的是Express,并且

  • 我无法在我的索引页面上显示经过身份验证的用户的角色和用户名。我用的是百里叶。所有角色用户都保存在内存中。我正在使用Springmvc编写和Web应用程序 我在我的pom中添加了依赖关系.xml 这是我的索引页: 我也希望: 这是我的安全配置类: 我也读了很多关于stackoverlew的问题,但我没有找到答案。我还阅读了官方蒂梅拉夫网站上的指南。 为什么我无法显示:“角色:用户”、“用户名:用户”

  • 当此用户登录系统时,我想更改用户名。我实现了自己的加密算法,但无法获得真正的密码来进行新的认证并将其放入

  • 我试图将我当前用户的用户名添加到我的URL(route)中,但是我不断地得到错误。我已经尝试了很多下面提到的方法,但是没有一个有效。以下是我的代码: Layout.html: 当我尝试转到另一个页面时,我收到错误,当我转到设置时收到404。 jinja2.exceptions.UndefinedError jinja2.exceptions.UndefinedError:'user'未定义 MOD

  • 问题内容: 如何检查查询是否出错,而不是向用户显示错误(包含不安全的数据库信息)。 假设我遇到这样的情况,我的分页类采用URI段显示page 。如果有人这样写,我将得到一个错误,显示有关我的数据库的信息。 我该如何处理? 问题答案: 在application / config / database.php中设置 在模型或控制器中: