layout django-templates zurb-foundation django-cms override

layout - Render los complementos Django-CMS de forma diferente en diferentes splaceholders/templates



django-templates zurb-foundation (1)

Versión corta: me gustaría que el mismo tipo de cmsplugin use diferentes plantillas en diferentes marcadores de posición. es posible? O, ¿debería ir y hacer mi complemento personalizado?

Versión larga: usando Django y Django-CMS y usando el cmsplugin-video-youtube , tengo dos videos de youtube en la página de inicio y se diseñan usando el sistema de grillas de Foundation 4 para apilar uno y luego otro debajo y a cierta altura ''punto de ruptura'' del ancho del navegador, estarán uno al lado del otro. Esto está funcionando bien.

Ahora me gustaría agregar un número ilimitado de videos de YouTube en un placeholder diferente que está en una página diferente, que es de una plantilla diferente. Y me gustaría que se renderizaran uno debajo del primero y así sucesivamente y en un cierto "punto de ruptura" del ancho del navegador serán pares horizontales uno al lado del otro, un par debajo del primero y así sucesivamente.

Como estos elementos de video de YouTube tienen un número ilimitado, no predefinido, no puedo usar el sistema de cuadrícula. Pensé que usaría el sistema de cuadrícula de bloques . Esto me hace crear los elementos como elementos <li> dentro de un elemento <u> . Esto requiere que cambie la plantilla del elemento cmsplugin-video-youtube para representar esos elementos <li> alrededor de los YouTubes. El problema con esto es que si anulo la plantilla para este complemento, al suministrar templates/cmsplugin-video-youtube/embed.html , también lo anulará y lo modificará para las instancias de este complemento que se encuentran en la página de inicio. Y me gustan como son.

Entonces, lo que pensé es que sería beneficioso tener una forma de anular la plantilla de un complemento solo para un placeholder específico. Eso me permitiría especificar la representación de YouTube en un placeholder de placeholder específico en mi otra página y no afectar las instancias de este complemento en mi página de inicio, que me gusta como son.

¿Existe tal opción: anular la plantilla de un complemento para un placeholder específico?

De lo contrario, pensé que esto podría requerir un complemento personalizado que se basa en el cmsplugin-video-youtube , tal vez una subclase de la misma, supongo, que tendría la plantilla que necesito, con los elementos <li> , para esta otra página.

Un enfoque diferente sería intentar iterar sobre las instancias de la instancia del complemento y representarlas con toda la <ul><li> cosa a su alrededor, una por una. He preguntado sobre este enfoque y de acuerdo con algunas respuestas que obtuve, parece que no es la ruta más fácil.

¿Cuál sería su enfoque para esto, por favor?

No he recibido una respuesta todavía. Por favor, incluso un puntero sería algo!


Sé que esta pregunta es muy antigua. .pero con suerte, cualquier persona con el mismo problema lo encontrará útil.

Mirando el código fuente para CMSPluginBase:

https://github.com/divio/django-cms/blob/develop/cms/plugin_base.py

context[''placeholder''] = placeholder

El marcador de posición se pasa como contexto en el método de representación.

Entonces, en la plantilla puede usar eso para generar resultados diferentes. Un buen ejemplo para esto:

https://github.com/stefanfoulis/cmsplugin-filer/blob/develop/cmsplugin_filer_image/templates/cmsplugin_filer_image/plugins/image/default.html