我有一个具有外键的模型,在管理员中,这些FK呈现为下拉列表。但是,其中一些显示相关表中元素的“添加”,“编辑”和“删除”按钮,而其他则不显示。我无法弄清楚这些字段之间的区别是什么,有些呈现一种方式,有些呈现不同的方式。
我理想的情况是那些按钮不为任何外键呈现,编辑一个模型只限于该实体本身的更改。
我看到Django最终为这些字段选择了RelatedFieldWidgetWrapper
。我可以在此小部件上设置can_add_related
,can_change_related
和can_delete_related
,但我不知道如何轻松地将这些作为这些字段的选项传递,以便它们都是一致的。
如何管理在管理中打开和关闭这些选项?
答案 0 :(得分:0)
在管理员中新增一名员工用户(非超级用户),假设模型A有外键,名为模型B,分配模型A的添加/更改/删除权限,并为该用户添加模型B的权限,使用该用户登录管理员,你可以而且只能在管理面板或RelatedFieldWidgetWrapper
中添加模型B.因为can_xxx_related是由管理员按照烫发来计算的:
wrapper_kwargs.update(
can_add_related=related_modeladmin.has_add_permission(request),
can_change_related=related_modeladmin.has_change_permission(request),
can_delete_related=related_modeladmin.has_delete_permission(request),
)
django\contrib\admin\options.py\line 162