表单集删除内联实例

Aru*_*n G 1 django django-models django-forms django-admin python-2.7

已确定我需要从表单集中删除的对象。

def save_formset(self, request, form, formset, change):
        instances = formset.save(commit=False)
        for instance in instances:
            ......
        if formset.deleted_forms:
            for obj in formset.deleted_forms:
               obj.delete() //here is the issue
Run Code Online (Sandbox Code Playgroud)

它以错误结束

*** AttributeError: 'ActivitiesForm' object has no attribute 'delete'
Run Code Online (Sandbox Code Playgroud)

这就是 formset.deleted_forms 是什么

(Pdb) formset.deleted_forms
[<django.forms.widgets.ActivitiesForm object at 0x7f19f6435f50>]
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?基本上我试图删除从管理员选择的内联条目

Ala*_*air 5

如果您使用的是模型表单集,则应该循环遍历deleted_objects,而不是deleted_forms。请参阅文档以获取更多信息。

for obj in formset.deleted_objects:
    obj.delete()
Run Code Online (Sandbox Code Playgroud)

请注意,在 Django 1.7(发行说明)之前,您不需要手动删除对象。当您调用 save() 时,即使使用commit=False.