Python 如何在django admin中启用更改/删除ForeignKey实体?

Python 如何在django admin中启用更改/删除ForeignKey实体?,python,django,django-admin,Python,Django,Django Admin,Django admin for ForeignKey字段呈现一个小的“加号”链接,允许创建一个新实体 而且它看起来还能够呈现更改/删除ForeignKey对象的链接 但文档中没有任何示例显示如何使用此功能。是否有任何未记录的选项?答案在于类和类的代码 在BaseModelAdmin中,首先确保用户有权添加、更改或删除相关模型的对象 在RelatedFieldWidgetWrapper中,要更改或删除相关对象,还应确保该关系不是多对多关系。此外,如果为此关系启用了级联删除,则无法删除相关对象

Django admin for ForeignKey字段呈现一个小的“加号”链接,允许创建一个新实体

而且它看起来还能够呈现更改/删除ForeignKey对象的链接


但文档中没有任何示例显示如何使用此功能。是否有任何未记录的选项?

答案在于类和类的代码

BaseModelAdmin
中,首先确保用户有权添加、更改或删除相关模型的对象

RelatedFieldWidgetWrapper
中,要更改或删除相关对象,还应确保该关系不是多对多关系。此外,如果为此关系启用了级联删除,则无法删除相关对象

默认情况下,权限为True,我想如果您更改了权限,您会知道吗?如果确实没有更改,则无法更改相关对象的原因可能是您重写了管理模型中的属性或方法


一旦您可以看到change按钮,您可能还不会看到delete按钮,因为级联是默认的。您可以通过在创建外键时设置属性来更改此设置。

查看
django/contrib/admin/widgets.py
中类
RelatedFieldWidgetWrapper
函数:

self.can_delete_related = not multiple and not cascade and can_delete_related

我使用django 1.8.4。当我使用SuperUser登录时,我看到添加和编辑链接,但删除是不可见的。谢谢,我错过了关于删除
ForeignKey字段选项的
要求。