2011-03-07 30 views
6

在Django中,我想向请求添加一个变量。即在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']}}"); 

回答

9

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

  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,但如果你这样做只是为了有模板页面提供一个变量,它是不是最好的办法,你可以通过上下文字典为模板页。

编辑:另外请注意,你需要以某种方式通过它在模板使用请求之前,它是默认不可用看http://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext

+0

是实际的,但我不能检索模板page.Any想法,为什么相同?? – Rajeev 2011-03-07 11:14:55

+0

request.name在模板页面显示为空.. – Rajeev 2011-03-07 11:19:32

+0

@Rajeev,需要看一些代码 – 2011-03-07 11:32:58

相关问题