python-如何在Django管理中启用更改/删除ForeignKey实体?
作者:互联网
用于ForeignKey字段的Django管理员呈现了一个小的“加号”链接,该链接允许创建新实体.
而且看起来它也能够呈现更改/删除ForeignKey对象的链接
但是文档中没有示例显示如何使此功能可用.有没有未记录的选项?
解决方法:
答案在于BaseModelAdmin类和RelatedFieldWidgetWrapper类的代码.
在BaseModelAdmin中,首先要确保用户有权添加,更改或删除相关模型的对象.
在RelatedFieldWidgetWrapper中,要更改或删除相关对象,还应确保该关系不是多对多的.此外,如果为此关系启用了级联删除,则不能删除相关对象.
默认情况下,权限为True,我假设您会知道是否更改了权限?如果确实没有,则无法更改相关对象的原因可能是您覆盖了管理模型中的readonly_fields
属性或get_readonly_fields
方法.
一旦可以看到更改按钮,您可能还不会看到删除按钮,因为级联是默认设置.您可以通过在创建外键时设置on_delete
属性来更改此设置.
标签:django-admin,python,django 来源: https://codeday.me/bug/20191027/1946661.html