Dow, I am using the chained approach which you suggested ( base -> topbar -> sidebar -> view1 ). It works perfectly as i wanted :)
Thanks! On Sun, May 19, 2013 at 10:50 PM, Dow Street <[email protected]> wrote: > Hi. I'm not sure, but we may be using the terms 'parent' and 'child' > differently (i.e. what you're calling a child I'm calling a parent?). I > have only used django template inheritance where a given template file has > at most one {% extends %} tag in it - that is what I am referring to when I > say 'has at most one parent'. However, the base.html template (the parent) > is extended by many different child templates (e.g. view1.html). Is this > what you are thinking as well? > > If you want a template to inherit from multiple parents - e.g. include > multiple {% extends %} tags - well, that is not something I have done > previously (and I can't say whether that model is supported). However, you > can achieve comparable functionality (I think) by adding a layer in the > inheritance hierarchy - for example: > > base.html - has empty blocks for topbar and sidebar > topbar.html - extends base.html and contains the code for the topbar > sidebar.html - extends topbar.html and contains the code for the sidebar > view1.html - extends sidebar.html and contains the code specific to that > page > > If you load the view1.html template in your view function all those {% > extends %} tags will cause the django template engine to walk the > hierarchy, starting from base -> topbar -> sidebar -> view1, leaving you > with a single 'merged' html file. At each step, if a child template has a > block with the same name as one of the parents, the child block will > overwrite the contents of the parent block. Does this make sense? > > (and I should note that I am by no means an expert in the django template > processor - this is just my understanding). > > R, > Dow > > > On May 18, 2013, at 11:12 PM, Parin Porecha <[email protected]> > wrote: > > > Dow, > > I am trying to have multiple children of the same parent. And thats why > I'm not able to decide which child to load. Anyways, the sidebar and topbar > are more or less static, so I guess there isn't much need to have separate > files for them. I want to have them different so that developing that > section of the website would be easier. In the end, I want to merge all > those different sections into one file and load that in my view. Can you > please help me with this ? > > > > Artem, > > Yes, I get it :) Thanks! > > > > > > On Sat, May 18, 2013 at 9:56 PM, Artem Zinoviev <[email protected]> > wrote: > > if you have base.html and sidebar.html, base.html file just declare {% > block sidebar %} section and sidebar.html make implementation of it, if you > have SidebarView, then you load sidebar.html and this file take all from {% > extends base.html %}. And if you try load base.html from SidebarView - you > get it :-), but {% block sidebar %} section be blank... > > > > суббота, 18 мая 2013 г., 12:14:37 UTC+3 пользователь Parin Porecha > написал: > > Hi, > > > > I have just started to learn Django's template inheritance and I am > stuck due to this problem - > > In my application's 'base.html', I have defined two blocks - > > {% block topbar %}{% endblock topbar %} > > and > > {% block sidebar %}{% endblock sidebar %} > > > > I have 2 templates - 'sidebar.html' which extends {% block sidebar %} > > and 'topbar.html' which extends {% block topbar %} > > > > The 'sidebar.html' is also divided into further blocks which are > extended by other templates. > > > > Now, my question is - > > in 'views.py', i have a view which is supposed to render the whole > homepage ( i.e.- including the sidebar, topbar and content ). So, which > template should I load in the view, so that both sidebar and topbar plus > the content defined in other templates gets shown ? > > because 'base.html' contains many children, I'm confused which one to > load > > > > Thanks to mattmc who tried to help me with this in IRC. Sorry, didn't > get it completely :) > > > > -- > > Regards, > > Parin Porecha > > > > say Kifflom! and look forward to 17.09.13 ! > > > > -- > > You received this message because you are subscribed to the Google > Groups "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected]. > > To post to this group, send email to [email protected]. > > Visit this group at http://groups.google.com/group/django-users?hl=en. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > > > > > > > -- > > Regards, > > Parin Porecha > > > > say Kifflom! and look forward to 17.09.13 ! > > > > -- > > You received this message because you are subscribed to the Google > Groups "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected]. > > To post to this group, send email to [email protected]. > > Visit this group at http://groups.google.com/group/django-users?hl=en. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/django-users?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Regards, Parin Porecha say Kifflom! <http://www.epsilonprogram.com/> and look forward to 17.09.13 ! -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.

