django modelformset_factory POST请求数据检索

时间:2016-07-04 14:05:29

标签: python django

我目前有django 1.9,我发现modelformset_factory非常有用,因为我可以设置没有大笔费用的表单。

现在我开始意识到提交表单(POST方法)后,我需要弄清楚我添加和删除了哪些对象。

这是我得到的观点:

def def_accounts(request):

    list_services_list()
    services_list_TopicFormSet = modelformset_factory(services_list, form=services_list_nameForm, fields=('accounts',), can_delete=True)
    items = services_list.objects.all()
    formset = services_list_TopicFormSet(queryset = items)
    if request.method == 'POST':
        t_formset = services_list_TopicFormSet(request.POST)
        if t_formset.is_valid():
            t_formset.save()

我已经查看了POST请求,它似乎是一个完整的数据提交,它似乎做了一个完整的对象刷新,所以我无法真正区分那里的POST动作..

对此有何帮助?

谢谢!

修改 似乎我可以计算出哪个对象被添加到脚趾FORM中,如下所示:

    if t_formset.is_valid():
        instances = t_formset.save()
        for instance in instances:
             print "instance.id: " + str(instance.id)
             print "instance.accounts: " + str(instance.accounts)
             instance.save()

输出:

> instance.id: 21
> instance.accounts: test1

仍然试图找出如何删除哪些对象!

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

当您save a model formset致电formset.save()时,您会获得三个属性formset.changed_objectsformset_deleted_objectsformset.new_objects,分别存储已更改,已删除和新对象。

因此,您可以使用formset.deleted_objects访问已删除的对象。