Django:删除带有Javascript确认的视图,而不重定向到模板

Django:删除带有Javascript确认的视图,而不重定向到模板,django,django-forms,django-templates,django-views,django-csrf,Django,Django Forms,Django Templates,Django Views,Django Csrf,我有一个可以使用Django DeleteView删除的模板。我希望在使用Javascript弹出窗口后删除数据 视图.py class ObjectNameDeleteView(DeleteView): model = ObjectName form_class = PostObjectName success_url = 'http://localhost:8000/impact/displayobjects/' DisplayObjects.html <

我有一个可以使用Django DeleteView删除的模板。我希望在使用Javascript弹出窗口后删除数据

视图.py

class ObjectNameDeleteView(DeleteView):
    model = ObjectName
    form_class = PostObjectName   
    success_url = 'http://localhost:8000/impact/displayobjects/'
DisplayObjects.html

<form method="POST" action="{% url 'person_delete' obj.pk %}">
{% csrf_token %}
<a href="{% url 'person_delete' obj.pk %}">
<button type="submit" class="btn btn-danger" onClick="deleteFunction()">Delete</button></a>
</form>

<script>
        function deleteFunction(e) {
            if(!confirm("Are you sure you want to delete?")){
                e.preventDefault();
            }            
        }
</script>

{%csrf_令牌%}
函数删除函数(e){
如果(!确认(“您确定要删除吗?”)){
e、 预防默认值();
}            
}
单击“删除”按钮后,出现错误:

CSRF验证失败。请求已中止。


我如何才能做到这一点?

从buton中删除
type='submit'

将类或id添加到表单中,然后在
js
add
$(“#您的表单id”).submit()


它仍然显示错误:“403禁止的CSRF验证失败。请求中止。”Url(“^person\u delete/(?P\d+)/$”,views.personDelete,'person\u delete')就是您的Url的样子吗?它是类视图还是基于def的视图?这意味着在本例中它是类视图put
@method\u decorator(CSRF\u豁免)
在您的ObjectNameDeleteView
类ObjectNameDeleteView(视图):@method\u decorator(csrf\u empture)
我将@csrf\u empture添加到URL.py中,它工作了,这要感谢django.views.decorators.csrf导入csrf\u empture路径('objects/delete/',csrf\u empture(views.objectnamedeteeview()),name='person\u delete'),
<form id='person-delete' method="POST" action="{% url 'person_delete' obj.pk %}">
{% csrf_token %}
<a href="{% url 'person_delete' obj.pk %}">
<button  class="btn btn-danger" onClick="deleteFunction()">Delete</button></a>
</form>


 function deleteFunction(e) {
            if(!confirm("Are you sure you want to delete?")){
                e.preventDefault();
            }else{
             $('#person-delete').submit();
            }            
        }
class ObjectNameDeleteView(View):
       @method_decorator(csrf_exempt)
       #then your logic