防止在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指出安全漏洞。我已经更新了我的答案。