2011-05-20 58 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中用:值 的字典添加到模板上下文。通过 默认,这是一个空字典。 如果字典中的值为可调用的 ,则通用视图将在渲染模板之前调用 。