如何通过单击按钮调用我的视图函数,并使它返回某些内容,导致我的网页无法重新加载?看来我必须在views.py中以某种方式返回HTTP请求,否则会收到错误消息。 “我不想停止提交表格”。我现在不希望使用Ajax。 我有一个页面,其中包含来自数据库的一长串对象,用户可以输入数量并单击将表单数据发送到购物车对象的按钮。为此,将触发相应的视图函数,并返回某种HTTP响应,从而以某种方式导致页面加载。我希望这样,单击按钮时除了提交的表单数据外,什么都不会发生。甚至没有重定向到同一页面。这是因为我不希望用户在页面上丢失该位置,而不必滚动浏览对象列表以查找它们的位置。
观看次数
def add_to_cart(request, product_id):
return HttpResponse('')
网址路径
path('cart/add/<product_id>', home_views.add_to_cart, name='add_to_cart'),
报价
<form action="{% url 'add_to_cart' product.id %}" method="post">{% csrf_token %}</form>
答案 0 :(得分:1)
如果您真的不希望使用AJAX,重新加载页面或进行POST确实反映在页面中的任何更改,则可以添加一个隐藏的<iframe>
,将其设置为表单的目标。
<iframe name="submit-frame" style="display: none"></iframe>
...
<form target="submit-frame">...</form>
答案 1 :(得分:0)
这种效果不是由Django Backed产生的,您可以通过ajax请求发布表单数据以得到此结果
答案 2 :(得分:0)
您可以尝试像在按钮单击上调用post()这样的事情:
function post() {
$.ajax({
type : 'POST',
url : 'post/', //whatever relative url you want to use
data : { msgbox : $('#input-id').val() }, //the input id of what you are submitting
success : function(json){ //do stuff if post is successful
$('#chat-msg').val(''); //can set the to blank
}
});
}
只需将其添加到您的javascript或脚本标签中,但是您将需要添加JQuery,如下所述:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>