模板中的Django for循环不会像一个大字符串一样遍历所有元素

时间:2019-04-22 15:01:13

标签: django django-templates django-views

我正在尝试做一个简单的循环,但是在Django中,我无法使其正确输出。

它正在打印所有东西,就像一根大弦一样。

在python中,它可以很好地循环,这是一个有效列表,并创建了一个输入到postgres数据库中的输入。

这是我视图中的功能。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 %}

但是它打印出列表中的所有内容,而不是列表中的元素,看起来像这样

enter image description here

如果我只是将其添加到模板中,{{ script }}

enter image description here

类似于循环,但没有空格

这是模型定义

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)

1 个答案:

答案 0 :(得分:0)

确定模型后,我确定要重新创建它们,然后从旧数据库中继承表,并且

class programas(models.Model):
title = models.CharField(unique=True, max_length=250)
script = ArrayField(models.CharField(max_length=8000, blank=True))
created_on = models.DateTimeField()
show_date = models.CharField(max_length=300, blank=True, null=True)
script_eng = ArrayField(models.CharField(max_length=8000, blank=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.IntegerField(primary_key=True)
id = models.IntegerField(default=1)

然后这些模型将不会在postgres数据库中更新,因此我清除了迁移,所以当迁移不起作用时

我运行了这段代码

SELECT * FROM "public"."django_migrations";
DELETE FROM "public"."django_migrations" WHERE "id"=replace with your Id;

所以现在我可以循环浏览,但是我仍然需要做其他一些事情。