2014-01-26 99 views
2

我有一個我正在渲染的Django模板,但是,我沒有必要給它一個上下文(我沒有在模板中使用任何變量)。你可以返回沒有上下文的render()嗎?

是,如果我的渲染/復位功能看起來像這樣行不行:

return render(request, 'shipment/createAccount.html') 

此代碼是功能上的工作,但我想,以確保沒有更好的方式來處理這種情況。

回答

2

這很完美。如果我們檢查的render的聲明,我們看到它返回

return HttpResponse(loader.render_to_string(*args, **kwargs), 
         **httpresponse_kwargs) 

在那之後,我們檢查的render_to_string定義:

def render_to_string(template_name, dictionary=None, context_instance=None): 
    -snip- 
    if not context_instance: 
     return t.render(Context(dictionary)) 

所以,很顯然,這是確定不提供上下文字典。可以肯定,我們檢查如何Context處理的情況時dictionary=None

super(Context, self).__init__(dict_) 

...這是越來越深!我們檢查基類ContextBaseContext,發現它處理的情況非常好:

def __init__(self, dict_=None): 
     self._reset_dicts(dict_) 

    def _reset_dicts(self, value=None): 
     builtins = {'True': True, 'False': False, 'None': None} 
     self.dicts = [builtins] 
     if value is not None: 
      self.dicts.append(value) 
相關問題