我希望在调用print(user)时看到user.email而不是user.username。这就是说,在我的管理员中,我希望将电子邮件视为外键。
通常我会按照django tutorial:
中描述的方式进行操作class Poll(models.Model):
# ...
def __unicode__(self):
return self.question
但是,User类是预写的,我不想修改Django。那怎么办呢?
更新: 我在模型中添加了以下内容:
def email(self):
u = User.object.get(pk=self.user.id)
return u.email
我如何将它绑定到我的list_display?
答案 0 :(得分:1)
您可以在Poll类上定义一个名为“get_username”的方法,该方法返回用户的电子邮件地址而不是实际的用户名。然后将'get_username'作为参数传递给Poll类的ModelAdmin中的'list_display'属性。
答案 1 :(得分:0)
您定义的用例需要覆盖User.__unicode__
方法。
来自list_display上的django文档:
如果该字段是ForeignKey,Django将显示相关对象的
__unicode__()
。
我看不出任何解决方法。