gpt4 book ai didi

ajax - 在 Ajax 请求后返回 Django 模型以进行模板渲染

转载 作者:行者123 更新时间:2023-12-01 06:29:55 24 4
gpt4 key购买 nike

我想为我的网页创建基于 AJAX 的搜索。到目前为止,我能够发送表单数据并对我的 Django 模型进行适当的调用。我遇到的困难只是将查询集发回并使用 Django 模板系统进行渲染。非常感谢您的帮助/建议。

这是我正在使用的代码。

View .py

if request.is_ajax():
if request.method == 'POST':
format = 'json'
mimetype = 'application/json'
try:
q = request.POST['obj']
o = Object.objects.filter(name__icontains=q)
return render_to_response( 'project_view_objects.html', {'username': request.user.username, 'results':o})

查看.html

<script>
$(document).ready(function(){

$("#search_form").submit(function(event)
{
event.preventDefault();


$.ajax({
type: "POST",
url: "/objects/search/",
data: $(this).serialize(),
processData: false,
dataType: "json"
});
});});
</script>

<article>
<blockquote>
<form class="create_form" id="search_form">
<p>
<input id="objectSearchNameInput" type="text" name="obj" value="Object name">
<input type="submit" value="search objects">
</p>
</form>
</blockquote>
</article>
<br />

{% if results %}
<blockquote>
<aside class="column">
{% for object in results %}
<b><a href="#" class="extra-text-special">{{ object.name }}</a></b><br />
{% endfor %}
</aside>
<aside class="column">
{% for object in results %}
<font class="extra-text-nospecial">{{ object.created_when }}</font><br />
{% endfor %}
</aside>
</blockquote>
{% else %}
<p>haha</p>
{% endif %}

目前,我在页面上看到的只是“哈哈”。

最佳答案

您缺少的是,在 AJAX 触发时模板已经呈现 - 当然它必须如此,因为模板是服务器端而 javascript 是客户端。

所以要做的事情是让 Ajax View 不返回 JSON,而是返回渲染模板,然后 Javascript 回调将其插入到模板中。

关于ajax - 在 Ajax 请求后返回 Django 模型以进行模板渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7627978/

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