我目前有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
仍然试图找出如何删除哪些对象!
有什么想法吗?
谢谢!
答案 0 :(得分:0)
当您save a model formset致电formset.save()
时,您会获得三个属性formset.changed_objects
,formset_deleted_objects
和formset.new_objects
,分别存储已更改,已删除和新对象。
因此,您可以使用formset.deleted_objects
访问已删除的对象。