【问题标题】:Django - Display User Email in User Profile AdminDjango - 在用户配置文件管理员中显示用户电子邮件
【发布时间】:2015-10-30 04:05:21
【问题描述】:

这可能是一个很简单的问题,但是我一直没能在 SO 中找到它。

我通过 OnetoOneField 创建了一个用户配置文件模型以获取更多用户信息。现在对于用户配置文件模型的管理员,我想显示在用户模型中找到的电子邮件字段。我试过了:

# models.py
def email(self):
    return self.user.email

# admin.py 
fieldsets = [
    ('',    {'fields': [
        ...
        'email',
        ...
    ]})
]
list_display = (
    ...
    'email',
    ...
)

这适用于list_display 部分,但对于fieldsets,弹出以下错误:

为 UserProfile 指定了未知字段(电子邮件)。检查 UserProfileAdmin 类的字段/字段集/排除属性。

有没有办法解决这个问题?提前谢谢!

【问题讨论】:

    标签: django email admin


    【解决方案1】:

    来自documentation:

    fields 可以包含要显示的readonly_fields 中定义的值 只读。

    如果您将可调用的名称添加到fields,则同样的规则适用于 使用fields 选项:可调用对象必须列在 readonly_fields.

    所以你需要添加:

    readonly_fields = ('email',)
    

    到您的模型管理类,然后它将在字段集中可用。

    【讨论】:

    • 谢谢!这很有效,很高兴知道如何完成 readonly_fields 。非常感谢!
    【解决方案2】:

    放这个

    def email(self, obj):
        return obj.user.email
    

    在您的用户配置文件管理类中,您将能够在字段集中使用它。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2017-06-17
      • 2012-09-30
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多