我有一个相当大的 CMS,其中包含许多模块,并且正在使用 Django 权限调节访问。每个应用程序都有一个 UserProfile 模型,其中一个 User 对象作为 ForeignKey。我希望能够在每个应用程序中轻松查找和创建 UserProfile 对象。我想使用 Inlines 来做这样的事情(来自 project/app/admin.py):
class InlineModelForUser(admin.TabularInline):
model = User
extra=0
class UserSettings(admin.ModelAdmin):
search_fields = ['username', 'name']
readonly_fields = ['username','name', 'otherproperites']
inlines = [InlineModelForUser,]
admin.site.register(User, UserSettings)
返回的错误是:“模型用户已注册”。我理解为什么会发生这种情况,并且我很欣赏我可能可以以不同的方式实现相同的功能。我想要实现的是将基本对象(用户)的编辑和附加的应用程序配置文件对象分开。我当然看到我可以在 UserProfile 的 CreateView 中创建一个自动完成字段,但有时您需要为每个应用程序提供不同的过滤工具(过滤/反对用户属性)并且需要向用户隐藏一些用户信息每个应用程序。
基本上:如何在 django.contrib.admin 中针对同一模型构建多个视图并将其注册到 admin.site.register?