情景:
假设我想使用多表继承来扩展Django的User
模型。假设我为此创建的模型称为CustomUser
。
现在让我们假设数据库中已存在与User
模型对应的记录,并且与CustomUser
模型对应的表仍为空。
现在我希望可以从Django的Admin应用程序访问CustomUser模型。我注意到只有CustomUser表中具有相应记录的用户模型记录包含在CustomUser的更改列表中,就像在查询中的场景后面进行INNER JOIN一样... (我使用connection.queries
进行了检查,确实是内部联接。
现在我想更改此行为,以便完成LEFT JOIN以检索与CustomerUser相关的记录。
如何在Django中实现这一目标?
非常感谢!
答案 0 :(得分:1)
将以下内容放在任何有效的admin.py。
中from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
#### below imports your custom user model
from accounts.models import CustomUser
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = CustomUser
class UserProfileAdmin(UserAdmin):
inlines = [ UserProfileInline, ]
admin.site.register(User, UserProfileAdmin)
以上将在管理员的用户中显示您的CustomUser
模型。现在你可以通过User__first_name
等来访问UserProfileAdmin中的用户字段。请原谅我的英文不好。