django 检查模板中的request.GET变量

9njqaruj  于 2023-08-08  发布在  Go
关注(0)|答案(3)|浏览(127)

我想在模板中显示一个特定的GET变量,只有当一个特定的GET变量被设置....我以为使用{% if request.get.my_var %}会工作,但它没有给我的结果。

khbbv19g

khbbv19g1#

变量是大小写敏感的,所以,假设lazerscience指出,你实际上在上下文中有请求对象,你需要使用{% if request.GET.my_var %}

iyzzxitl

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

oyxsuwqo

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'样式被添加到标记中。

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 %}

相关问题