我试图扩展django的contrib.auth用户模型,使用一个内联的“profile”模型来包含额外的字段。
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
class Profile(models.Model):
user = models.ForeignKey(User, unique=True, related_name='profile')
avatar = '/images/avatar.png'
nickname = 'Renz'
class UserProfileInline(admin.StackedInline):
model = Profile
class UserProfileAdmin(UserAdmin):
inlines = (UserProfileInline,)
admin.site.unregister(User)
admin.site.register(User, UserProfileAdmin)
这对于管理“更改用户”页面来说很好,但是我找不到在列表显示中添加内联模型字段的方法。只需在列表显示中指定配置文件字段的名称,就会出错:
userprofileadmin.list_display[4],“avatar”不是可调用的或“userprofileadmin”的属性,或在模型“user”中找到。
我可以创建一个callable,它在profile表中查找用户并返回相关字段,但这使我无法按内联字段对列表视图进行排序,这是我真正需要做的。
有什么建议吗?