【发布时间】:2014-11-04 09:09:28
【问题描述】:
我有一个 ModelAdmin (A),它是另一个 ModelAdmin (B) 的内联。 我想为 A 授予用户 (U) 管理员权限(添加、更改和删除)。 我给了用户他需要的所有权利(我认为): is_staff: True |可以添加、更改、删除A。 问题是你在管理面板上看不到内联 A。如果我也给他 B 的权限,它可以工作,但我不想让他修改那个模型。 在这些情况下,模型 B 是否存在某种“只读”?
【问题讨论】:
我有一个 ModelAdmin (A),它是另一个 ModelAdmin (B) 的内联。 我想为 A 授予用户 (U) 管理员权限(添加、更改和删除)。 我给了用户他需要的所有权利(我认为): is_staff: True |可以添加、更改、删除A。 问题是你在管理面板上看不到内联 A。如果我也给他 B 的权限,它可以工作,但我不想让他修改那个模型。 在这些情况下,模型 B 是否存在某种“只读”?
【问题讨论】:
管理界面用于编辑,如果您希望允许某些用户编辑模型 A 而不允许模型 B 编辑,请将 A 添加为 ModelAdmin,并且只允许这些用户管理(添加、编辑、删除)模型 A。
class AAdmin(admin.ModelAdmin):
...
class AInline(GenericTabularInline):
model = A
...
class BAdmin(admin.ModelAdmin):
inlines = [
AInline,
]
...
admin.site.register(A, AAdmin)
admin.site.register(B, BAdmin)
a_user.user_permissions.add('my_app.add_a', 'my_app.change_a', 'my_app.delete_a')
b_user.user_permissions.add('my_app.add_b', 'my_app.change_b', 'my_app.delete_b')
【讨论】: