2011-05-20 61 views
0

在下面的代碼我試圖發送一個對象與要求,這是正確的,如果因此如何將其模板發送對象與要求

def index(request): 
     cat = Category.objects.filter(title="ASD") 
     dict = {'cat' : cat} 
     request.update('dict' : dict) 
      #or 
     request.dict=dict; 

,並在模板中,我們可以編寫代碼進行解碼作爲

 {% for obj in request.dict%} 
      obj.title 
    {% endfor %} 

EDIT: 如果我打電話之類的函數

 def post_list(request, page=0, paginate_by=20, **kwargs): 
     logging.debug("post_list") 
     page_size = getattr(settings,'BLOG_PAGESIZE', paginate_by) 
     return list_detail.object_list(
     request, 
     queryset=Post.objects.published(), 
     paginate_by=page_size, 
     page=page, 
     **kwargs 
    ) 
+0

你做過官方教程嗎?看起來你在這裏錯過了一些基本概念。 – 2011-05-20 09:54:28

回答

2

你可以做到這一點,但你爲什麼要? Django有一個簡單的,定義明確的,通過上下文將數據傳遞到模板的方式。爲什麼試圖找到解決這個問題的方法?評論號後

再次編輯,Django的有通過額外的上下文到一個通用視圖的一個完美的方法,通過extra_context參數再次is well-documented

+0

我問過這個問題,因爲我傳遞了幾個參數給djangos list_detail.object_list(),所以我必須像這樣傳遞它。請讓我知道什麼是通過請求的正確方法。謝謝... 。 – Rajeev 2011-05-20 10:36:49

+0

請參閱編輯,如果我正在調用編輯器中顯示的函數,如何傳遞extra_context? – Rajeev 2011-05-20 10:45:40

+0

您是否嘗試將'extra_context'添加到'object_list'的參數列表中? – 2011-05-20 10:49:52

0

您沒有顯示用於呈現視圖的實際功能(render()render_to_response()等)。

比方說,你正在使用render_to_response()

render_to_response(template_name[, dictionary][, context_instance][, mimetype]) 

呈現給定的 語境詞典給定的模板,並與渲染 文本返回 HttpResponse對象。

所以,如果你在{"foo": your_object}傳遞一個字典,你可以在你的模板直接使用{{ foo }}


如果您使用的是object_list通用視圖,你應該使用extra_context

extra_context中用:值 的字典添加到模板上下文。通過 默認,這是一個空字典。 如果字典中的值爲可調用的 ,則通用視圖將在渲染模板之前調用 。