【发布时间】:2022-01-18 17:57:13
【问题描述】:
这两种情况的重复:
- How to force-save an "empty"/unchanged django admin inline?
- How to force creation of unchanged django admin inline object in django 1.9
但我仍然想知道在以后的 Django 更新中是否有更好的方法来做到这一点?
我的目标是在更改父模型管理实例时修改我的模型管理堆叠内联对象(保存前或保存后无关紧要)。我尝试在模型管理类中覆盖save_formset 和save_related,如Django 文档here 和here 中使用commit=False 编写的那样。例如:
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.any_field = "value"
instance.save()
formset.save(commit=False) 方法仅在它们在 Django 管理面板上发生更改时返回内联表单实例,如 django docs 中所述,但如果它们未更改,它不会返回内联对象列表,即使在发送 commit=False 之后也是如此.我需要编辑这些内联对象,无论它们是否在管理面板上进行了更改。
【问题讨论】:
标签: python django django-admin