在管理员中组合User和UserProfile

时间:2010-08-31 01:31:37

标签: django django-models django-admin

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

我已经看到了如何使这项工作的一些部分(例如,在添加用户时添加配置文件的内容),但不是整体。

1 个答案:

答案 0 :(得分:12)

您可以使用inline admin models

执行此操作

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

admin.site.unregister(User)

定义内联UserProfile

class UserProfileInline(admin.TabularInline):
    model = UserProfile

并使用User admin

中的内联
class UserAdmin(admin.ModelAdmin):
    inlines = [UserProfileInline]
admin.site.register(User, UserAdmin)