2

设想:

假设我想User使用多表继承来扩展 Django 的模型。假设我为此创建的模型称为CustomUser.

现在假设模型对应的数据库中已经存在记录,User模型对应的表CustomUser还是空的。

现在我希望可以从 Django 的 Admin 应用程序访问 CustomUser 模型。我注意到只有在 CustomUser 表中具有相应记录的用户模型记录包含在 CustomUser 的更改列表中,就好像在查询中正在后台完成 INNER JOIN...(我检查了使用connection.queries它是确实是 INNER JOIN)。

现在我想更改此行为,以便完成 LEFT JOIN 以检索与 CustomerUser 相关的记录。

我怎样才能在 Django 中实现这一点?

非常感谢!

4

1 回答 1

2

把下面的任何工作 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在管理员中的用户中显示您的模型。现在您可以通过等方式从 UserProfileAdmin 访问用户字段。请User__first_name原谅英语不好。

于 2012-06-02T07:42:33.147 回答