我想在模板中显示一个特定的GET变量,只有当一个特定的GET变量被设置....我以为使用{% if request.get.my_var %}会工作,但它没有给我的结果。
{% if request.get.my_var %}
khbbv19g1#
变量是大小写敏感的,所以,假设lazerscience指出,你实际上在上下文中有请求对象,你需要使用{% if request.GET.my_var %}。
{% if request.GET.my_var %}
iyzzxitl2#
检查settings.py中的TEMPLATE_CONTEXT_PROCESSORS中是否有django.core.context_processors.request。如果没有,就把它放在那里,或者自己添加request到呈现的上下文中。http://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request
settings.py
TEMPLATE_CONTEXT_PROCESSORS
django.core.context_processors.request
oyxsuwqo3#
将请求的.GET参数传递到Django模板:例如-我们有一个页面register/,表单中有某些参数,还有一个重复的页面registerprint/,没有分页,作为过滤记录的完整列表,我们需要通过传递register/页面中的一些参数,将用户从register/重定向到registerprint/
urls.py from django.urls import path from .views import record_list, record_list_print urlpatterns = [ path('register/', view=record_list, name='register'), path('registerprint/', view=record_list_print, name='registerprint'), ] views.py def strx(string): param=str(string) if param=='None': return '' else: return param def record_list(request): req = {'type': strx(request.GET.get('type')), 'profile' : strx(request.GET.get('profile')), 'org_nazvanie':strx(request.GET.get('org_nazvanie')), 'org_filial':strx(request.GET.get('org_filial')), 'org_tema':strx(request.GET.get('org_tema')), 'org_address':strx(request.GET.get('org_address')), 'info_naimenovanie':strx(request.GET.get('info_naimenovanie')), 'info_forma':strx(request.GET.get('info_forma')), 'info_dostup':strx(request.GET.get('info_dostup')), 'all_in_one':strx(request.GET.get('all_in_one')) } return render(request, 'bot/registerfilterpag.html', { 'req' : req})
字符串和registerfilterpag.html。在这个模板中,我们创建了一个按钮,将用户重定向到页面的副本,其中包含我们在www.example.com中从初始请求中提取的一些URL参数views.py。按钮本身是不可打印的,因此'noprint'样式被添加到标记中。
'noprint'
registerfilterpag.html {% extends 'bot/base.html' %} {% block Body %} <style> @media print { .noprint { display: none !important; } } </style> <a class="btn btn-info noprint" role="button" href="../../registerprint/?type={{ req.type }}&profile={{ req.profile }}&org_nazvanie={{ req.org_nazvanie }}&org_filial={{ req.org_filial }}&org_tema={{ req.org_tema }}&org_address={{ req.org_address }}&info_naimenovanie={{ req.info_naimenovanie }}&info_forma={{ req.info_forma }}&info_dostup={{ req.info_dostup }}&all_in_one={{ req.all_in_one }}&submit=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA">version for printing</a> {% endblock %}
型
3条答案
按热度按时间khbbv19g1#
变量是大小写敏感的,所以,假设lazerscience指出,你实际上在上下文中有请求对象,你需要使用
{% if request.GET.my_var %}
。iyzzxitl2#
检查
settings.py
中的TEMPLATE_CONTEXT_PROCESSORS
中是否有django.core.context_processors.request
。如果没有,就把它放在那里,或者自己添加request到呈现的上下文中。
http://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request
oyxsuwqo3#
将请求的.GET参数传递到Django模板:例如-我们有一个页面register/,表单中有某些参数,还有一个重复的页面registerprint/,没有分页,作为过滤记录的完整列表,我们需要通过传递register/页面中的一些参数,将用户从register/重定向到registerprint/
字符串
和registerfilterpag.html。在这个模板中,我们创建了一个按钮,将用户重定向到页面的副本,其中包含我们在www.example.com中从初始请求中提取的一些URL参数views.py。按钮本身是不可打印的,因此
'noprint'
样式被添加到标记中。型