【发布时间】:2019-04-22 15:01:13
【问题描述】:
我正在尝试做一个简单的循环,但在 Django 中我无法正确输出。
它像一个大字符串一样打印所有内容。
在 python 中,它很好地循环,它是一个有效的列表,创建了一个输入到 postgres 数据库中。
这是我的views.py中的函数
def pages(request, id):
obj = rtves_programas.objects.get(id=id)
context = {'title': obj.title,
'show_date': obj.show_date,
'script' : obj.script,
'script_eng': obj.script_eng,
'description': obj.description,
'description_eng': obj.description_eng,
'show_id':obj.show_id,
'url': obj.url,
}
return render(request, 'rtves/pages.html', context)
这个元素是一个列表→'script_eng': obj.script_eng,,我想打印出列表中的元素。
这是我在模板上的代码。
{% if script %}
{% for sentence in script %}
{{ sentence }}
{% endfor %}
{% else %}
<p>Nothing here</p>
{% endif %}
但它打印出列表中的所有内容而不是列表的元素,它看起来像这样
如果我只是将它添加到模板中{{ script }}
类似于循环,但没有空格
这是模型定义
class rtves_programas(models.Model):
title = models.CharField(unique=True, max_length=250)
script = ArrayField(models.CharField(max_length=8000))
created_on = models.DateTimeField()
show_date = models.CharField(max_length=300, blank=True, null=True)
script_eng = models.CharField(max_length=8000, blank=True, null=True)
description = models.CharField(max_length=2000, blank=True, null=True)
description_eng = models.CharField(max_length=2000, blank=True, null=True)
url = models.CharField(max_length=200, blank=True, null=True)
show_id = models.CharField(max_length=200, blank=True, null=True)
【问题讨论】:
-
为什么你认为它是一个列表?显示 rtves_programas 的定义。
-
您的
script是,如果我理解正确的话,是一个string,所以如果您对其进行迭代,那么您将获得各个字符。您可以使用'script' : obj.script.splitlines()生成行列表。但这通常不会对格式化产生太大影响。 -
当我打印它作为列表返回的元素类型时。在 postgres 数据库中,他们用大括号而不是方括号处理数组,我可以在 python 中很好地循环它,所以它是一个有效的列表。
-
当我迭代它时,它只是打印它在数据库中的外观以这个 {"
-
您是否将此脚本数据作为 json 字符串存储在数据库中?
标签: django django-templates django-views