我的网站使用了Django的用户身份验证用户模型和自定义的UserProfile模型来存储一些其他数据(生日等)。有没有一种方法可以在Django admin中创建将User和UserProfile模型中的字段编织在一起的 View ?

我怀疑这个代码片段还没有结束,但是也许它将有助于说明我正在尝试做的事情:

from django.contrib import admin
from django.contrib.auth.models import User
from userprofile.models import UserProfile


class UserProfileAdmin(admin.ModelAdmin):
    list_display = ('name', 'gender', 'User.email') #user.email creates the error - tried some variations here, but no luck.

admin.site.register(UserProfile, UserProfileAdmin)

错误信息:



最终,我试图创建一个管理员 View ,该 View 具有UserProfile的名字和姓氏以及User的电子邮件。

最佳答案

要显示用户电子邮件,您需要在UserProfileUserProfileAdmin上有一种返回电子邮件的方法

在UserProfile上

def user_email(self):
    return self.user.email

或在UserProfileAdmin上
def user_email(self, instance):
    return instance.user.email

然后将list_display更改为
list_display = ('name', 'gender', 'user_email')

相关文档:ModelAdmin.list_display

关于django - Django Admin:如何在同一 View 中显示两个不同模型的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3409970/

10-12 13:44