Django 表单集删除内联实例

Django 表单集删除内联实例,django,python-2.7,django-models,django-forms,django-admin,Django,Python 2.7,Django Models,Django Forms,Django Admin,已确定需要从表单集中删除的对象 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_form

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

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
它以错误结束

*** AttributeError: 'ActivitiesForm' object has no attribute 'delete'
这就是formset.deleted_forms

(Pdb) formset.deleted_forms
[<django.forms.widgets.ActivitiesForm object at 0x7f19f6435f50>]

这里出了什么问题?基本上,我正在尝试从管理员中删除内联条目选择。如果您使用的是模型表单集,则应该循环浏览已删除的对象,而不是已删除的表单。有关更多信息,请参阅

for obj in formset.deleted_objects:
    obj.delete()

请注意,在Django 1.7之前,您不需要手动删除对象。调用“保存”时删除了对象,即使使用commit=False。

如果使用的是模型表单集,则应循环浏览已删除的对象,而不是已删除的表单。有关更多信息,请参阅

for obj in formset.deleted_objects:
    obj.delete()

请注意,在Django 1.7之前,您不需要手动删除对象。调用“保存”时删除了对象,即使使用commit=False。

在Django>=1.11中,您可以覆盖对表单集的删除:

class YourInlineFormset(BaseInlineFormSet):

    def delete_existing(self, obj, commit=True):
        if commit:
            do_delete_it_your_way()

在Django>=1.11中,您可以覆盖对表单集的删除:

class YourInlineFormset(BaseInlineFormSet):

    def delete_existing(self, obj, commit=True):
        if commit:
            do_delete_it_your_way()

显然,该对象没有delete方法,但我不确定您到底想要实现什么。假设您上载了一个内联表内容。你想删除它!!当我们覆盖save_formset时。我们如何处理它?显然,该对象没有delete方法,但我不确定您到底想实现什么。假设您上载了一个内联表内容。你想删除它!!当我们覆盖save_formset时。我们如何处理它?formset.deleted_对象不会退出Pdb formset.deleted_forms[]Pdb formset.deleted_对象***AttributeError:“Activities formset”对象没有属性“deleted_对象”,看起来您可能正在使用Django的旧版本。在这种情况下,我使用的是Django 1.7,我不知道你为什么会被判有罪。希望你能弄明白。@surfer190这是不对的。显示已删除的_对象是ModelFormSet的一项功能,它们不绑定到admin.formset。已删除的_对象不退出Pdb formset.deleted_forms[]Pdb formset.deleted_objects***AttributeError:“Activities formset”对象没有属性“deleted_objects”看起来您可能正在使用Django的旧版本。Django 1.7是我正在使用的。在这种情况下,我不知道您为什么会获得AttributeError。希望你能弄明白。@surfer190这是不对的。显示已删除的_对象是ModelFormSet的一项功能,它们不与管理员绑定。