在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']}}");
答案 0 :(得分:9)
您提供的示例是错误的,因为
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,但如果您这样做只是为了在模板页面中提供变量,那么这不是最好的方法,您可以将上下文字典传递给模板页面。
编辑:另请注意,在模板中使用请求之前,您需要以某种方式传递它,默认情况下它不可用,请参阅http://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext