【发布时间】:2016-10-31 08:56:46
【问题描述】:
我有几个模型将用户作为外键。用户列表显示用户名,但我想自定义它。我是否必须使用自定义模型扩展 User 模型并编写自己的 __str__ 函数?有没有更简单的方法?
我认为您不能使用可调用的字段集,对吧?
【问题讨论】:
-
您可以使用自定义用户管理员,例如@dmitryro。你不需要 django-admin-tools 来完成你所要求的。如果您还需要在其他地方显示用户名以外的其他内容,我建议使用代理模型并覆盖 str 方法,而不是创建自定义用户模型。
-
我可以为用户创建一个代理模型,但我想我必须将它用作所有模型的外键?
-
是的,你必须这样做。
-
我覆盖了 User str 函数
User.add_to_class("__str__", get_user_email),该函数在管理员 ListView 中有效,但在查看/添加单个项目时无效。 -
覆盖
__unicode__工作
标签: python django django-admin