对于ForeignKey字段的Django管理员呈现一个小的"加"允许创建新实体的链接。
看起来它也能够呈现更改/删除ForeignKey对象的链接
但文档中没有示例显示如何使此功能可用。是否有任何未记录的选项?
答案 0 :(得分:2)
答案在于BaseModelAdmin类和RelatedFieldWidgetWrapper类的代码。
在BaseModelAdmin
中,首先确保用户有权添加,更改或删除相关模型的对象。
在RelatedFieldWidgetWrapper
中,要更改或删除相关对象,还要确保关系不是多对多关系。此外,如果为此关系启用了级联删除,则无法删除相关对象。
默认情况下,权限为True,我假设您知道是否更改过它们?如果确实没有,那么您无法更改相关对象的原因可能是您覆盖了管理模型中的readonly_fields
属性或get_readonly_fields
方法。
一旦您看到更改按钮,您可能还没有看到删除按钮,因为级联是默认值。您可以通过在创建外键时设置on_delete
属性来更改此设置。
答案 1 :(得分:2)
查看__init__
中的RelatedFieldWidgetWrapper
个django/contrib/admin/widgets.py
函数:
self.can_delete_related = not multiple and not cascade and can_delete_related