我的网站使用了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的电子邮件。
最佳答案
要显示用户电子邮件,您需要在UserProfile
或UserProfileAdmin
上有一种返回电子邮件的方法
在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/