On May 20, 2009, at 10:53 AM, Roberto Cea wrote:

>
> I have a large amount of optional components (with a model for each
> one) that will be freely inserted by my users, and it would be
> impractical to render each one in a single large template.
> I want to give each component a ".render()" method, so I can just call
> that from the template.
> However, I don't want to have to put together each component's HTML in
> its model definition. Ideally, each component would have a
> corresponding template file, that would be added together with the
> page's other components' output to generate the complete page's HTML.
> Is there a way to specify, for each model, a small template-snippet
> file that will be used to represent it? Hopefully using Django
> standard template syntax?

I'm not sure this will completely solve your problem, but in several  
cases I've added python-only (non-database) attributes to models,  
pointing at a template in my template dirs directory. That way you can  
use generic code to render snippets for a variety of different models.  
You could create a mixin class that provides the render() method,  
using django's template rendering functions and a reference to  
self.component_template, then have models subclass this mixin and  
provide their own component_template attribute.

Hope that's what you were looking for.

Eric

> >


--~--~---------~--~----~------------~-------~--~----~
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