Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中的循环问题_Python_Django_Django Templates - Fatal编程技术网

Python Django中的循环问题

Python Django中的循环问题,python,django,django-templates,Python,Django,Django Templates,可能重复: 我想根据某些条件打印一些数据 我想像在其他语言中一样使用它: for(i=1;i<=count;i++) print i 然后将此计数传递给我的模板Django模板不是编程语言。在视图或模型中写入所有逻辑,并将数据传递到模板中: def view(request): values = [] for i in range(10): values.append(i) # your custom logic here return ren

可能重复:

我想根据某些条件打印一些数据

我想像在其他语言中一样使用它:

for(i=1;i<=count;i++)
print i

然后将此计数传递给我的模板

Django模板不是编程语言。在视图或模型中写入所有逻辑,并将数据传递到模板中:

def view(request):
    values = []
    for i in range(10):
         values.append(i) # your custom logic here
    return render_to_response("/path/to/template", {'values': values})
{% for value in values %}
    <p>{{ value }}</p>
{% endfor %}
在模板中:

def view(request):
    values = []
    for i in range(10):
         values.append(i) # your custom logic here
    return render_to_response("/path/to/template", {'values': values})
{% for value in values %}
    <p>{{ value }}</p>
{% endfor %}
{%表示值中的值%}
{{value}}

{%endfor%}
仅当“var”是一个可数时,“for i in var”语法才起作用,例如列表、元组、集合、dict

我建议如下:不要将项目计数传递给模板,而是传入iterable eg列表。如果只有一个计数,则可以在视图中使用范围(计数)创建一个iterable。编码

# Extract from view
def view(request):
    # Set up values. Values is a list / tuple / set of whatever you are counting
    values = Product_attributes.objects.all()
    return render_to_response("/path/to/template", {'values': values})

# Extract from template
{% for value in values %}
   <p>{{value}}</p>
{% endfor %}

有关for循环的“python方式”的更多信息,请参见此处:

如果不适合将范围添加到视图代码中(我不喜欢向视图中添加纯粹的模板内容),我可能会创建一个范围过滤器:

@register.filter
def range(val):
    return range(val)
然后你会这样使用它:

{% for i in count|range %}
<p>{{ i }}</p>
{% endfor %}
{% for x in count|center:count %}
<p>{{ forloop.counter }}</p>
{% endfor %}
{i在计数范围%内的百分比}
{{i}

{%endfor%}
如果您不想为此编写任何python代码,还可以使用一个非常丑陋的黑客,它利用Django的中心(或ljust和rjust)过滤器,创建一个长度为所提供值的字符串。您可以这样使用它:

{% for i in count|range %}
<p>{{ i }}</p>
{% endfor %}
{% for x in count|center:count %}
<p>{{ forloop.counter }}</p>
{% endfor %}
{x在计数中的百分比|中心:计数%}
{{forloop.counter}}

{%endfor%}

不过,我不建议这样做,我只是想证明这是可能的。

您可以在django模板中这样做,请在发布之前查看SO中的旧问题。这是一个什么是计数?是查询集还是列表?只有这些物品是可购买的。如何在视图中获得它?解释清楚。我想这会对你有所帮助。@arulmr我已经编辑了我的问题,你可以从哪里看到我的答案。谢谢你的关注。我将范围(计数)传递给我的模板,它对我有效。再次感谢