在 Django 中显示数据
Displaying data in Django
我有一个视图显示我的数据中的所有对象,我在模板中使用 {% for object in objects %}
标签这样做。但是我认为当它被转换为 html 时,每个对象都会被 <p>
标签包围?但问题是我想将对象成对显示两个。不是 1 个元素的垂直列表。我怎样才能循环遍历 Django 中的数组并能够自定义它们的布局位置?任何帮助,将不胜感激!
没有用于连续配对对象的内置模板标签,因此您有两个选择;您可以编写自己的模板标签,将 (a, b, c, d)
之类的对象列表转换为 双元素 元组列表,例如 ((a, b), (c, d))
,或者创建两对您在呈现模板之前的视图。
import itertools
def object_list(request):
...
iterator = iter(objects)
pairs = itertools.izip_longest(*(iterator, iterator))
return render(request, 'objects/object_list.html', {'objects': objects, 'pairs': pairs})
在您的模板中,您可以按如下方式迭代对;
{% for first, second in pairs %}
<p>{{first}}, {{second}}</p>
{% endfor %}
...
希望这能帮助您解决问题。
我有一个视图显示我的数据中的所有对象,我在模板中使用 {% for object in objects %}
标签这样做。但是我认为当它被转换为 html 时,每个对象都会被 <p>
标签包围?但问题是我想将对象成对显示两个。不是 1 个元素的垂直列表。我怎样才能循环遍历 Django 中的数组并能够自定义它们的布局位置?任何帮助,将不胜感激!
没有用于连续配对对象的内置模板标签,因此您有两个选择;您可以编写自己的模板标签,将 (a, b, c, d)
之类的对象列表转换为 双元素 元组列表,例如 ((a, b), (c, d))
,或者创建两对您在呈现模板之前的视图。
import itertools
def object_list(request):
...
iterator = iter(objects)
pairs = itertools.izip_longest(*(iterator, iterator))
return render(request, 'objects/object_list.html', {'objects': objects, 'pairs': pairs})
在您的模板中,您可以按如下方式迭代对;
{% for first, second in pairs %}
<p>{{first}}, {{second}}</p>
{% endfor %}
...
希望这能帮助您解决问题。