防止在django中删除硬编码url

防止在django中删除硬编码url,django,Django,我在里面有一个链接和按钮,可以删除与该按钮关联的记录 <a href="{% url 'parts:stock_delete' stock.id %}"> <button class="delete" type="submit" name="delete_btn" style="position: absolute; right: 40px;" >Delete</button> </a> 但我希望记录仅在按下按钮时删除,而不是在地址栏中

我在里面有一个链接和按钮,可以删除与该按钮关联的记录

<a href="{% url 'parts:stock_delete' stock.id  %}">
  <button class="delete" type="submit" name="delete_btn" style="position: absolute; right: 40px;" >Delete</button>
</a>

但我希望记录仅在按下按钮时删除,而不是在地址栏中键入URL时删除,如:


对此可以做些什么?

您可以使用
post
方法。当按下按钮时,您可以传递一些标志,例如
flag1

<form action="{% url 'parts:stock_delete' stock.id  %}" method="post" >
    <input type="hidden" name="flag1" value="True" >{% csrf_token %}
    <button class="delete" type="submit" name="delete_btn" style="position: absolute; right: 40px;" >Delete</button></a>
</form> 

您可以使用
post
方法。当按下按钮时,您可以传递一些标志,例如
flag1

<form action="{% url 'parts:stock_delete' stock.id  %}" method="post" >
    <input type="hidden" name="flag1" value="True" >{% csrf_token %}
    <button class="delete" type="submit" name="delete_btn" style="position: absolute; right: 40px;" >Delete</button></a>
</form> 
你真的应该用

这是一个基于类的通用视图,在查看时(
GET
)将显示一个确认页面,询问您是否确实要删除该记录。确认(
POST
)后,记录将被删除

@佐助的回答没有考虑到另一个巨大的安全漏洞。如果你想确保你的应用程序是安全的,你需要仔细研究这个页面。

你应该真正使用它

这是一个基于类的通用视图,在查看时(
GET
)将显示一个确认页面,询问您是否确实要删除该记录。确认(
POST
)后,记录将被删除


@佐助的回答没有考虑到另一个巨大的安全漏洞。如果你想确保你的应用程序是安全的,你需要仔细研究这个页面。

你可以按照Kye说的做,使用DeleteView via post排除注册表。CSRF存在一个问题,但Django已经为AJAX请求提供了一种携带令牌的方法。您可以查看文档:

您可以按照Kye所说的操作,通过post使用DeleteView排除注册表。CSRF存在一个问题,但Django已经为AJAX请求提供了一种携带令牌的方法。您可以查看文档:

如何在中使用post方法?您可以单击按钮提交表单,也可以发送一个
Ajax
来执行相同的操作。@Rajivsha不要使用
如果您想使用
您应该在表单中使用删除方法,而不是post。这是一种更合适的删除方法。如何在中使用post方法?您可以单击按钮提交表单,也可以发送一个
Ajax
来执行相同的操作。@Rajivsha不要使用
如果您想使用
您应该在表单中使用删除方法,而不是post。这是一种更合适的删除方法。感谢@Kye指出安全漏洞。我已经更新了我的答案。谢谢@Kye指出安全漏洞。我已经更新了我的答案。