【问题标题】:Add a variable to request in django在 django 中添加要请求的变量
【发布时间】:2011-07-10 06:56:32
【问题描述】:

在 Django 中,我想在请求中添加一个变量。即,

def update_name(request):
    names = Employee.objects.filter()
    if names.count() > 0:
        request.update({"names": name })
    return render_to_response('chatlist/newchat.html',
        context_instance=RequestContext(request, {'form': form,'msg': msg}))

这是向请求中添加变量的正确方法吗?如果没有,我该怎么做?

另外,如何在模板页面中检索相同的值?即,

alert ("{{request.names['somename']}}");

【问题讨论】:

    标签: python django django-models django-templates django-views


    【解决方案1】:

    你给出的例子是错误的,因为

    1. 没有request.update函数
    2. 您正在使用name 变量,您没有在任何地方赋值?

    无论如何,在python中你可以简单地分配属性,例如

     def update_name(request):
         names = Employee.objects.filter()
         if(names.count() > 0): 
             request.names = names
     return render_to_response('chatlist/newchat.html', context_instance=RequestContext(request,{'form': form,'msg' : msg}))
    

    而且你甚至不需要分配给请求,为什么你不能把它传递给模板,例如

    def update_name(request):
        names = Employee.objects.filter()
         return render_to_response('chatlist/newchat.html', context_instance=RequestContext(request,{'form': form,'msg' : msg, 'names': names}))
    

    并且在模板页面中您可以访问 request.name,但如果您这样做只是为了在模板页面中有一个可用的变量,这不是最好的方法,您可以将 context dict 传递给模板页面。

    编辑:另请注意,在模板中使用请求之前,您需要以某种方式传递它,默认情况下它不可用,请参阅http://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext

    【讨论】:

      【解决方案2】:

      工作代码!!

      假设一个名为 my_name 的变量。我会将其添加到 getpost 请求中。

      my_name = "Nidhi"
      

      在获取请求中添加变量

      _mutable = request.GET._mutable
      request.GET._mutable = True
      request.GET['my_name'] = my_name
      

      在 POST 请求中添加变量

      _mutable = request.POST._mutable
      request.POST._mutable = True
      request.POST['my_name'] = my_name
      

      现在在请求中添加了一个变量名 my_name。 要获得其价值,请使用以下代码 -

      request.GET.get("my_name")    # get request variable value in GET request
      request.GET.get("my_name")    # get request variable value in POST request
      

      输出:Nidhi

      【讨论】:

        猜你喜欢
        • 2017-08-29
        • 2021-07-25
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-14
        • 1970-01-01
        • 2016-07-30
        相关资源
        最近更新 更多