2016-07-04 119 views
-1

我目前得到了django 1.9,我发现modelformset_factory非常有用,因为我可以设置没有主要负担的表单。django modelformset_factory POST请求数据检索

现在我开始意识到提交表单(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操作..

对此有何帮助?

谢谢!

EDIT 看来我可以计算该对象被添加到脚趾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 

仍然试图找出如何能我获取哪些对象正在被删除!

有什么想法?

谢谢!

+0

我不明白你在问什么,或者它与工厂有什么特别的关系。 –

+0

我已经添加了编辑到原来的问题。我设法得到了一些关于添加到窗体的对象的细节,但是当对象被删除/删除时,我无法设法获取细节。 – user2835733

回答

0

当你save a model formset通过调用formset.save(),你会得到三个属性formset.changed_objectsformset_deleted_objectsformset.new_objects分别存储更改,删除和新对象。

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

+0

非常感谢!我仍然在学习django的内幕,并且需要一点时间才能熟悉它的运行方式并记录下来。 – user2835733