小编典典

需要在Django模板中将字符串转换为int

django

我正在尝试将url参数传递给这样的django模板…

response = render_to_string('persistConTemplate.html', request.GET)

这是我的views.py文件中的调用行。persistConTemplate.html是我的模板的名称,request.GET是包含url参数的字典。

在模板中,我尝试使用像这样的参数之一…

{% for item in (numItems) %}

  item {{item}}

{% endfor %}

numItems是我在请求中这样发送的url参数之一…

http:/someDomain/persistentConTest.html/?numItems=12

当我尝试上面的for循环时,我得到这样的输出。

image 1 image 2

我期待并希望看到字图像印刷12次…

image 1 image 2 image 3 image 4 image 5 image 6 image 7 image 8 image 9 image 10 image 11 image 12

谁能告诉我我怎么了?


阅读 1509

收藏
2020-03-27

共2个答案

小编典典

是的,此位置在视图中。

我觉得上面的示例不起作用-你不能迭代整数。

numItems = request.GET.get('numItems')

if numItems:
   numItems = range(1, int(numItems)+1)

return direct_to_template(request, "mytemplate.html", {'numItems': numItems})


{% for item in numItems %}
 {{ item }}
{% endfor %}
2020-03-27
小编典典

你可以使用添加过滤器将str强制转换为int

{% for item in numItems|add:"0" %}

强制int只是使用slugify

{{ some_int|slugify }}

编辑:也就是说,我同意其他人的看法,通常你应该在视图中执行此操作-仅在替代方法更差时使用这些技巧。

2020-03-27