开发者

Sending an object with request

开发者 https://www.devze.com 2023-03-07 00:32 出处:网络
In the below code i am trying to send a object with the request,Is this correct if so how to decode it in template

In the below code i am trying to send a object with the request,Is this correct if so how to decode it in template

 def index(request):
      cat = Category.objects.filter(title="ASD")
      dict = {'cat' : cat}
  开发者_运维知识库     request.update('dict' : dict) 
          #or
       request.dict=dict;

And In the templates can we write the code as

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

EDIT: If i am calling function like

      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
      )


You could do this, but why would you want to? Django has a simple, well-defined and well-documented way of passing data into templates - through the context. Why try and find ways to work around that?

Edit after comment No. Again, Django has a perfectly good way of passing extra context into a generic view, via the extra_context parameter which again is well-documented.


You're not showing the actual function you use to render your view (render(), render_to_response(), etc.).

Let's say you are using render_to_response() :

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

Renders a given template with a given context dictionary and returns an HttpResponse object with that rendered text.

So if you pass in {"foo": your_object} as a dictionary you can use {{ foo }} directly in your template.


If you are using the object_list generic view you should use the extra_context:

extra_context: A dictionary of values to add to the template context. By default, this is an empty dictionary. If a value in the dictionary is callable, the generic view will call it just before rendering the template.

0

精彩评论

暂无评论...
验证码 换一张
取 消