Python Django 1.9.3-如何将HTML模板传递给索引模板
因此,我有索引模板,其中有一个使用Django模板语言创建表的表(使用for) 如何使用AJAX将相同的表(即使使用Django模板代码)传递给索引模板?我已经添加了AJAX部分,它可以工作,但是DJango代码没有被解释,表也没有被构造 基本上,我想:Python Django 1.9.3-如何将HTML模板传递给索引模板,python,ajax,django,templates,Python,Ajax,Django,Templates,因此,我有索引模板,其中有一个使用Django模板语言创建表的表(使用for) 如何使用AJAX将相同的表(即使使用Django模板代码)传递给索引模板?我已经添加了AJAX部分,它可以工作,但是DJango代码没有被解释,表也没有被构造 基本上,我想: 在“模板”中分离各个DOM组件,以便根据需要通过AJAX推送到主(索引)模板。请记住,这些“模板”应该包含Django代码,如{%for data%} 例如: 从这个角度来看: def getDetails(request): var =
- 在“模板”中分离各个DOM组件,以便根据需要通过AJAX推送到主(索引)模板。请记住,这些“模板”应该包含Django代码,如
李>{%for data%}
def getDetails(request):
var = "{% if 10 > 5 %}<h1>TRUE</h1>{% endif %}"
return HttpResponse(
json.dumps(var),
content_type="application/json"
)
问题在于此代码:
def getDetails(request):
var = "{% if 10 > 5 %}<h1>TRUE</h1>{% endif %}"
return HttpResponse(
json.dumps(var),
content_type="application/json"
)
然后可以按如下方式加载和渲染它:
from django.template.loader import render_to_string
def getDetails(request):
table_rows = ['item 1', 'item 2', 'item 3']
output = render_to_string("table.html", {"items": table_rows})
return HttpResponse(
json.dumps(output),
content_type="application/json"
)
调用
render_to_string
将从table.html
加载模板代码,并使用提供的dict动态创建上下文。在这种情况下,上下文中的项
项设置为数组,以便{%for%}
标记可以循环通过它 你需要提供更多的细节。为什么不能在响应Ajax调用的视图中呈现模板片段?为什么不想在那里传递任何上下文呢?我可以传递包含HTML表的上下文。问题是,要创建表,当索引模板接收到表时,我使用的是模板语言(因为它非常简单),它会呈现所有内容,包括{%for items in collection%}。所以服务器没有解释Python代码,但这并没有回答我的问题:为什么不能像在其他视图中一样在Ajax视图中呈现模板?也许你应该展示这个视图的完整代码,我确实做了。我可以做,但它确实包含了{{}标记。
def getDetails(request):
var = "{% if 10 > 5 %}<h1>TRUE</h1>{% endif %}"
return HttpResponse(
json.dumps(var),
content_type="application/json"
)
from django.template import Context, Template
template = Template("{% if 10 > 5 %}<h1>{{ value }}</h1>{% endif %}")
def getDetails(request):
context = Context({"value": "TRUE"})
output = template.render(context)
return HttpResponse(
json.dumps(output),
content_type="application/json"
)
<table>
{% for item in items %}
<tr><td>{{ item }}</td></tr>
{% endfor %}
</table>
from django.template.loader import render_to_string
def getDetails(request):
table_rows = ['item 1', 'item 2', 'item 3']
output = render_to_string("table.html", {"items": table_rows})
return HttpResponse(
json.dumps(output),
content_type="application/json"
)