❶ django模块不能用for i in range(0, 5)总报错
我觉得你的目的很简单,就是想在模版中简单执行5次循环。可以使用make_list过滤器:
{% for i in '12345'|make_list %}
{{ i }}
{% endfor %}如果觉得这样有局限性,可以写一个简单的自定义过滤器:
@register.filter('list')
def do_list(value):
return range(1, value+1)然后这样使用:
{% for i in 5|list %}
{{ i }}
{% endfor %}如果你已经在视图中定义了好了一个变量,而只想执行5次,那么可以这样子:
{% for i in example|slice:":5" %}
{{ i }}
{% endfor %}
❷ django中模板页面如何实现字符串匹配替换 解决后提高悬赏
两个方案:
1:在后台将数据替换好送到前台,后台处理的办法可以使用replace或者正则版表达式
2:后台不处理,让前台用权jquery来处理,处理办法是正则表达式。
因为你没有具体的程序,所以只能给你一些建议。如果你把程序贴出来,可能会有更佳的解决办法。
❸ django先exclude 再filter
Model.objects.exclude(xxxx=xx).filter(xxxx=xx)
这样就可以了,可以连贯操作的。。。
filter里面也可以多个filter(xxxx=xx,aaa=aa,bbb=bb)
❹ 怎么Django标签过滤
1.创建一个模板库
使用模板过滤器的时候,直接把过滤器写在app里,
例如:在app里新建一个templatetags的文件夹,这个目录应当和 models.py 、 views.py 等处于同一层次。例如:
books/
__init__.py
models.py
templatetags/
views.py
在 templatetags 中创建两个空文件:一个 __init__.py (告诉Python这是一个包含了Python代码的包)和一个用来存放你自定义的标签/过滤器定义的文件。第二个文件的名字稍后将用来加载标签。例如,如果你的自定义标签/过滤器在一个叫作 poll_extras.py 的文件中,你需要在模板中写入如下内容: {% load poll_extras %}
{% load %}标签检查 INSTALLED_APPS 中的设置,仅允许加载已安装的Django应用程序中的模板库。
要成为有效的标签库,模块必须包含一个模块级的变量: register ,这是一个 template.Library 的实例。这个 template.Library 实例是包含所有已注册的标签及过滤器的数据结构。因此,在模块的顶部位置插入下述代码:
fromdjangoimport template
register = template.Library()