Django 如何在模板中获取 GET 参数

问题描述


我正在做一个 django 项目。
我想知道如何在模板中获取 GET 参数,以便我可以激活相应的选项卡。
我尝试了下面的代码,但没有用。
<a class="list-group-item {% if '?q=' in request.path %}active{% endif %}" href="{% url 'blah'%}"> Foo </a>

提前致谢。

解决方法

view中获取并在render中将其作为参数发送

active = ('?q=' in request.path)

render(...,context={"active": active}) 

并在模板中使用

class="list-group-item {% if active %}active{% endif %}"

或者得到它

if '?q=' in request.path:
   extra_class = "active"
else:
   extra_class = ""

render(...,context={"extra_class": extra_class})

并在没有 if

的模板中设置
class="list-group-item {{ extra_class }}"

顺便说一句:

你也可以得到它

query = request.GET.get('q','')

render(...,context={"query": query})

并在模板中使用它来设置类和显示查询

You search: {{ query }}

class="list-group-item {% if query %}active{% endif %}"