在管理员中组合User和UserProfile

Ale*_*Max 6 django django-models django-admin

我一直在阅读Django的用户和个人资料分离,我决定使用一个名为UserProfile的模型,它位于一个帐户应用程序中作为我的个人资料.问题是,现在我有两个独立的管理区域,一个用于修改用户,另一个用于修改用户配置文件.是否可以在管理员中将这两个模型视为一个模型,因此如果您添加或修改用户,您会在同一视图中看到用户和个人资料的所有字段?不言而喻,添加删除用户应该添加或删除配置文件,并且不应该在没有用户的情况下添加或删除配置文件.

我已经看到了如何使这项工作的点点滴滴(例如,添加用户时添加配置文件的东西),但不是整体.

Ash*_*hok 12

您可以使用内联管理模型执行此操作

在编写自定义User管理员之前,您必须取消注册已注册的User管理员

admin.site.unregister(User)
Run Code Online (Sandbox Code Playgroud)

定义内联 UserProfile

class UserProfileInline(admin.TabularInline):
    model = UserProfile
Run Code Online (Sandbox Code Playgroud)

并在User管理员中使用内联

class UserAdmin(admin.ModelAdmin):
    inlines = [UserProfileInline]
admin.site.register(User, UserAdmin)
Run Code Online (Sandbox Code Playgroud)