我可以在Django中删除表单实例吗?

时间:2012-10-14 08:48:26

标签: django django-forms

我有一个简单的编辑表单,我的想法是在表单中添加一个删除按钮,并在我的视图中使用它。

if request.method == 'POST':
    form = myform(request.POST,instance=myobject)
    if request.POST.get('delete'):
        form.delete()
    else:
        if form.is_valid():
            form.save()

这不行。我可以删除这种方式并且是否有错误,或者我应该首先进行查询,然后删除数据Mydata.objects.get(id=id).delete()

3 个答案:

答案 0 :(得分:1)

你不能删除那种方式。您需要通过查询并删除它来获取实例。

此外,您创建表单form = myform(request.POST,instance=formdata)的方式也不合适。 instance应该是对象,而不是request.POST中发布的数据。

答案 1 :(得分:1)

实际上,你可以。只需做form.instance.delete()
这是可能的,因为您将myobject作为实例传递。

编辑:在第二个想法中,它有点毫无意义,因为你也可以做myobject.delete()。

答案 2 :(得分:0)

不,你不能delete() ModelFormmyform打电话Mydata.objects.get(id=id).delete()

要删除实例,您仍需要通过第二种方式调用模型管理器: {{1}}。