Django:直接在模板中访问原始sql结果而不进行循环-因为只返回一行
我返回以下文件:Django:直接在模板中访问原始sql结果而不进行循环-因为只返回一行,django,templates,Django,Templates,我返回以下文件: return render_to_response('mypage.html', { "results":results}) 在我的视图函数中,我可以得到如下结果: results = listings.objects.get(id = 1) 在这种情况下,我可以在模板中直接使用它: {{results.name}} 或者,我可以得到如下结果(原始sql): 然后我必须遍历它,即使我知道它只返回1行: {% for listing in results %}
return render_to_response('mypage.html', { "results":results})
在我的视图函数中,我可以得到如下结果:
results = listings.objects.get(id = 1)
在这种情况下,我可以在模板中直接使用它:
{{results.name}}
或者,我可以得到如下结果(原始sql):
然后我必须遍历它,即使我知道它只返回1行:
{% for listing in results %}
{{listing.name}}
我需要的是能够使用原始sql,但仍然不必循环使用它。循环的问题是,如果结果为空,则循环内不会显示任何内容
results = listings.objects.raw(sql_query, [id,])[0]
或自定义方法:
def get_results():
from django.db import connection
cursor = connection.cursor()
cursor.execute(sql)
return cursor.fetchone()
尝试了第一种方法,它完全满足了我的需要。:)你能添加模板代码吗?“我需要的是能够使用原始sql,但仍然不必循环使用它。”您将如何输出该sql输出的内容?
def get_results():
from django.db import connection
cursor = connection.cursor()
cursor.execute(sql)
return cursor.fetchone()