[英]Django Making query Raw SQL
model 模型
class Member(models.Model):
id_unit = models.ForeignKey(Unit)
id_fleet = models.ForeignKey(Fleet)
def __str__(self):
return str(self.id_fleet)
views.py views.py
def fleet_member_view(request):
cursor = connection.cursor()
cursor.execute("select fleet_member.id_fleet_id, array_to_string(array_agg(fleet_member.id_unit_id),',') as id_unit
from fleet_member, setup_unit
where fleet_member.id_unit_id = setup_unit.id group by fleet_member.id_fleet_id")
row = cursor.fetchone()
return render(request,'fleet_member_view.html',{'row': row}, context_instance= RequestContext(request))
i want to show data in my template 我想在模板中显示数据
{% for post in row %}
<tr class="odd gradeX">
<td>{{ post.id_fleet }}</td>
<td>{{ post.id_unit }}</td>
</tr>
{% endfor %}
but data cannot show anything, i try query SQL in command line data show well. 但数据无法显示任何内容,我尝试在命令行数据显示良好的情况下查询SQL。 why data cannot show in template?
为什么数据无法显示在模板中?
cursor.fetchone()
retrieves the next row of a query result set and returns a single sequence, or None
. cursor.fetchone()
检索查询结果集的下一行,并返回一个序列,即None
。
{% ifnotequal row None %}
<tr class="odd gradeX">
<td>{{ row.0 }}</td>
<td>{{ row.1 }}</td>
</tr>
{% endifnotequal %}
You want to list all results, you should use cursor.fetchall()
要列出所有结果,应使用
cursor.fetchall()
View 视图
def fleet_member_view(request):
cursor = connection.cursor()
cursor.execute("select fleet_member.id_fleet_id, array_to_string(array_agg(fleet_member.id_unit_id),',') as id_unit
from fleet_member, setup_unit
where fleet_member.id_unit_id = setup_unit.id group by fleet_member.id_fleet_id")
row = cursor.fetchall()
return render(request,'fleet_member_view.html',{'row': row}, context_instance= RequestContext(request))
Template 模板
{% for post in row %}
<tr class="odd gradeX">
<td>{{ post.0 }}</td>
<td>{{ post.1 }}</td>
</tr>
{% endfor %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.