我正在尝试将url参数传递给这样的django模板...
response = render_to_string('persistConTemplate.html', request.GET)
这是我的www.example.com文件中的调用行views.py。persistConTemplate.html是我的模板和请求的名称。GET是包含url参数的字典。
在模板中,我尝试使用如下参数之一...
{% for item in (numItems) %}
item {{item}}
{% endfor %}
numItems是我在请求中发送的url参数之一,如下所示...
http:/someDomain/persistentConTest.html/?numItems=12
当我尝试上面的for循环时,我得到了如下输出......
图1图2
我期待并希望看到图像这个词印出12次...
图像1图像2图像3图像4图像5图像6图像7图像8图像9图像10图像11图像12
有谁能告诉我我哪里错了吗?
8条答案
按热度按时间fgw7neuy1#
可以使用add过滤器将字符串强制转换为整型
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#add
要将int强制转换为string,只需使用slugify
编辑:话虽如此,我同意其他人的看法,通常你应该在视图中这样做-只有当替代方案要糟糕得多时才使用这些技巧。
rsaldnfx2#
我喜欢制作自定义过滤器:
用法:
它适用于在视图中无法轻松完成此操作的情况。
ct2axkht3#
最简单的方法是使用内置的floatformat过滤器。
对于整数
对于精度为2的浮点值
它还将舍入到最接近的值。有关详细信息,请访问https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#floatformat。
8hhllhi24#
是的,这个地方是在视图。
我觉得上面的例子不起作用--你不能迭代整数。
bzzcjhmw5#
您应该在视图中添加一些代码来解压缩GET参数并将其转换为所需的值。即使
numItems
是一个整数,您所显示的语法也不会给予所需的输出。试试看:
4si2a6ki6#
在我的例子中,其中一项是字符串,你不能将字符串与整数进行比较,所以我必须将字符串强制转换为整数,如下所示
wgmfuz8q7#
你可以这样做:如果使用了“select”标签。
aelbi1ox8#
我的解决方案是一种黑客和非常具体的..
在模板中,我想比较一个百分比与0.9,它永远不会达到1,但所有的值都被视为字符串在模板中,并没有办法转换字符串到浮点数。
所以我这样做:
如果我要检测某个值超出0.8,我必须做到:
这是一个黑客攻击,但在我的情况下就足够了。我希望它能帮助其他人。