If you generate the data required for Block A in a context processor, then
it will be globally available, and the views/apps that fill in block B can
remain completely ignorant of them.

See

http://www.djangoproject.com/documentation/templates_python/#writing-your-own-context-processors

A combination of a context processor and the common template being
included in the base.html sounds like it would do the job for you.

Sean




>
> Hi,
>
> Thanks for the quick reply.
> I'll try to explain why I don't think that will work and hopefully you
> will tell me I'm wrong ;-)
>
> Lets say I have a template, base.html that looks something like this:
>
> <whatever html>
> {% block A %}{% endblock %}
> {% block B %}{% endblock %}
> more html
>
> Block A contains, lets say, news items. Block B contains my page. B is
> filled in by various different apps (probably by displaying a template
> which includes base.html), but A should always be filled in by the
> same app, regardless of the app controlling B (preferably from its own
> template). The two apps should not know or care about each other
> (except, obviously, if the news is specific to the page, but lets
> ignore that for now).
>
> When I have a view in an app, I'd normally make it display some
> template, which would in turn include another template, all the way
> down to the base template. But, what I want to do seems to have two
> root templates which include the base template... am I missing
> something or thinking about the problem wrong?
>
> I hope people understand :-P
>
> Thanks!
> Dan.
>
> 2008/6/5 Bartosz Ptaszynski <[EMAIL PROTECTED]>:
>>
>> If you want something to be displayed on all of your pages why not
>> adding it to the master template that you extend later on with
>> specific templates.
>> You could also use the {% include %} tag to include the template in
>> other template.
>> Remember that you always work with the context provided to the
>> template by the current view. So for example when you have two views
>> using different templates, and both include your extra template, you
>> will have to make sure that you provide all the data the extra
>> template needs to display properly to both views.
>> If you are using generic views you can use extra_content dictionary to
>> pass any extra data your template may need.
>>
>> I hope I've managed to explain this...
>>
>> ---
>> Bart
>>
>> On 5 Jun 2008, at 17:39, Daniel Kersten wrote:
>>
>>>
>>> Hi all,
>>>
>>> If I have a django app, for example, some sort of news feed, or maybe
>>> adds - whatever, which I want to display on all (or most) of my pages
>>> (handled by different views) and this app has it's own template to
>>> handle how it's displayed, how do I connect it up to the app(s) that
>>> handle the pages?
>>>
>>> My instinct tells me there must be a better way than to manually call
>>> it from each of my views, seems like bad code duplication to me, but I
>>> don't really know how one would normally handle this.
>>> Also, let's say that this app should behave differently depending on
>>> which page the user is currently on. (eg, news or adds related only to
>>> that specific page - the code is the exact same, but different data is
>>> fetched from the database).
>>>
>>> Thanks in advance for any help or tips!!
>>> Dan.
>>>
>>> --
>>> Daniel Kersten.
>>> Leveraging dynamic paradigms since the synergies of 1985.
>>>
>>> >
>>
>>
>> >
>>
>
>
>
> --
> Daniel Kersten.
> Leveraging dynamic paradigms since the synergies of 1985.
>
> >
>



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Python Ireland" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.ie/group/pythonireland?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to