gpt4 book ai didi

javascript - 使用 AJAX 时 Django 未接收新的查询字符串

转载 作者:行者123 更新时间:2023-12-02 14:38:50 28 4
gpt4 key购买 nike

AJAX 调用不会向views.py 发送新的查询字符串。调用成功,但数据库未更新结果。我想我是在无事可做吗?如何使查询字符串到达​​views.py?如果我去掉 .preventDefault(),一切都会正常。我很确定我的views.py 中有一些东西需要编辑。

html:

<form method="GET" action="">
<input id='foo' type='text' name="search" value="{{ request.GET.search }}"/>
<input type='submit'/>
</form>

JavaScript:

    $(document).ready(function(){
$("form").submit(function(e){
e.preventDefault(); //stop submit
$.ajax({
type: "GET",
url: "{% url 'index' %}",
data: $('#foo').val(),
success: function(data){
// alert($('#foo').val());
}
});
});
});

View .py

def page(request):
stuff = model.objects.all()
query = request.GET.get("search")
if query:
stuff = stuff.filter(
Q(field__icontains=query)

)
context = {'stuff': stuff,
}
return render(request, 'app/page.html', context)

UPDATE

我做了一些挖掘,这个 link帮助进一步解释了事情。我基本上必须创建一个单独的 View ,其中包含 page 拥有的所有内容。这个新 View 具有“逻辑”,处理 ajax 请求并输出结果,然后我告诉我的 AJAX 调用发送到 div。不要忘记为新 View 创建一个 url。这是您需要发送 ajax 请求的地方。

最佳答案

您没有在 data: 选项中指定参数名称 search

data: { search: $("#foo").val() },

关于javascript - 使用 AJAX 时 Django 未接收新的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37198921/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com