Javascript Django在使用AJAX时未收到新的查询字符串
AJAX调用未将新查询字符串发送到views.py。调用成功,但数据库不随结果更新。我想我打电话是为了什么?如何使查询字符串到达views.py?如果我去掉Javascript Django在使用AJAX时未收到新的查询字符串,javascript,ajax,django,django-forms,django-views,Javascript,Ajax,Django,Django Forms,Django Views,AJAX调用未将新查询字符串发送到views.py。调用成功,但数据库不随结果更新。我想我打电话是为了什么?如何使查询字符串到达views.py?如果我去掉.preventDefault(),一切正常。我很确定我的views.py中有一些东西需要编辑 html: views.py def page(request): stuff = model.objects.all() query = request.GET.get("search") if query:
.preventDefault()
,一切正常。我很确定我的views.py中有一些东西需要编辑
html:
views.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)
更新
我做了一些挖掘,这有助于进一步解释事情。我基本上必须创建一个包含
页面
所有内容的单独视图。这个新视图具有“逻辑”,处理ajax请求并输出结果,然后我告诉我的ajax调用发送给div。不要忘记为新视图创建url。这就是您需要将ajax请求发送到的位置 您没有在data:
选项中指定参数名search
data: { search: $("#foo").val() },
您没有在
数据:
选项中指定参数名称search
data: { search: $("#foo").val() },
出于某种原因,这是行不通的。有什么原因吗?你确定我的视图中没有需要添加的内容。py?对不起,我没有使用Django。但我不明白为什么需要什么特别的东西。这将以完全相同的方式发送参数,如果您执行普通表单提交而不是AJAX,则发送参数的方式将与发送参数的方式完全相同。您说过当您取出
.preventDefault()
时表单会工作,这会导致表单正常提交。您在成功:
函数中是否有代码,用于在DOM中显示返回的HTML?好的,谢谢您的澄清。最后一个问题:url
片段当前设置为向自身发送请求(同一页面)。也许我应该把它发送到页面的特定部分?再次感谢您的回复。是的,我知道,它被设置为显示一个隐藏的div,该div将公开查询结果(一个表)。我遇到的主要问题是刷新,刷新会再次隐藏div。由于某种原因,这不起作用。有什么原因吗?你确定我的视图中没有需要添加的内容。py?对不起,我没有使用Django。但我不明白为什么需要什么特别的东西。这将以完全相同的方式发送参数,如果您执行普通表单提交而不是AJAX,则发送参数的方式将与发送参数的方式完全相同。您说过当您取出.preventDefault()
时表单会工作,这会导致表单正常提交。您在成功:
函数中是否有代码,用于在DOM中显示返回的HTML?好的,谢谢您的澄清。最后一个问题:url
片段当前设置为向自身发送请求(同一页面)。也许我应该把它发送到页面的特定部分?再次感谢您的回复。是的,我知道,它被设置为显示一个隐藏的div,该div将公开查询结果(一个表)。我遇到的主要问题是刷新,刷新会再次隐藏div。
data: { search: $("#foo").val() },