2011-03-07 73 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