Sei*_*dis 14 python django url templates django-templates
我request.path用来获取当前的URL.例如,如果当前URL是"/ test/foo/baz",我想知道它是否以字符串序列开头,让我们说/ test.如果我尝试使用:
{% if request.path.startswith('/test') %}
    Test
{% endif %} 
我收到一个错误,说它无法解析表达式的其余部分:
Could not parse the remainder: '('/test')' from 'request.path.startswith('/test')'
Request Method: GET
Request URL:    http://localhost:8021/test/foo/baz/
Exception Type: TemplateSyntaxError
Exception Value:    
Could not parse the remainder: '('/test')' from 'request.path.startswith('/test')'
Exception Location: C:\Python25\lib\site-packages\django\template\__init__.py in   __init__, line 528
Python Executable:  C:\Python25\python.exe
Python Version: 2.5.4
Template error
一种解决方案是创建自定义标签来完成工作.还有其他东西可以解决我的问题吗?使用的Django版本是1.0.4.
Fer*_*ran 60
您可以使用切片过滤器来获取网址的第一部分
{% if request.path|slice:":5" == '/test' %}
    Test
{% endif %} 
现在无法尝试,也不知道过滤器是否在'if'标签内工作,如果不起作用则可以使用'with'标签
{% with request.path|slice:":5" as path %}
  {% if path == '/test' %}
    Test
  {% endif %} 
{% endwith %} 
The*_*One 27
您可以通过检查内置in标记的成员资格来获取相同的内容,而不是使用startswith检查前缀.
{% if '/test' in request.path %}
    Test
{% endif %} 
这将传递字符串不严格在开头的情况,但您可以简单地避免使用这些类型的URL.
| 归档时间: | 
 | 
| 查看次数: | 13135 次 | 
| 最近记录: |