I've checked the custom tags and the middleware that automatically
registers request object inside the template context, this is all I
need to get the recursive call working. However I wonder why such
functionality isn't there. Probably there is another way to put
content from totally independent components/apps on the same page.
Could someone point me in the right direction?

The overhead of recursive requests is negligible and I will make
custom render tag for it Monday if no other "django way" solution
bubbles up here.


On Aug 7, 8:11 pm, Daniel Roseman <dan...@roseman.org.uk> wrote:
> On Aug 7, 5:24 pm, SardarNL <ja.d...@gmail.com> wrote:
>
>
>
> > Hi Folks
>
> > Here is the problem, we have some pages that don't contain any
> > content, but rather layout the blocks which are served by other views.
> > Extending the template and overriding some blocks is not a solution,
> > because there are many unrelated blocks, that can not be rendered by a
> > single view.
>
> > Naturally I would expect some {% dispatch "/some/path/here" %} tag,
> > such that when template is being processed, the tag will issue
> > recursive request and will be replaced by obtained content. The tag
> > should be able to replace the base template of called view, so the
> > header/footer and other markup will not be rendered if view is called
> > as a block.
>
> > Unfortunately there is no such tag. So my question is: how to give the
> > control to independent blocks. The idea is:
>
> >   - current request is being processed by some view, which knows how
> > to fetch only its own content
> >   - the designer may want to add other content/block, totally
> > unrelated to current request, for example a poll/banner/menu etc.
> >   - the block needs to be served by some view because there database
> > fetch is needed along other processing. So simple include of a
> > template is not a solution. Fetching all the content within the top-
> > most view isn't a solution because the block can be used on many
> > places.
>
> > That is the reason why this should be implemented as recursive call,
> > such that the block-view will not even know it is being called as a
> > block and will simply render the content. Of course in real situation
> > the view still needs to know it is being called as a block, such that
> > more simplistic templates may be used.
>
> > Please explain what is the django way and how would you solve this,
> > maybe I'm digging in totally wrong direction.
>
> Including blocks on a page is what custom template tags are for. See
> here:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/
> particularly the section on 'inclusion tags'.
>
> That's not exactly what you asked for in terms of recursive views, but
> is probably better as it has less overhead - calling a view
> recursively would involve instantiating an HttpResponse object each
> time, then extracting the content and throwing the object away.
> --
> DR.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to