Saltar al contenido

Plantilla de anulación de widget de Django

Martín, parte de este equipo, nos ha hecho el favor de escribir esta sección porque controla muy bien el tema.

Deberá seguir los pasos a continuación para representar su nueva plantilla de widget:

1) Agregar ‘django.formas’ para usted APLICACIONES_INSTALADAS;

2) Agregar FORM_RENDERER = ‘django.forms.renderers.TemplatesSetting’ para usted configuración.py.

Más detalles: https://docs.djangoproject.com/en/2.0/ref/forms/renderers/#django.forms.renderers.TemplatesSetting

Django versión < 1.11:

El widget debe implementar el render para renderizar una plantilla diferente:

from django.utils.safestring import mark_safe
from django.template.loader import render_to_string

class MultiChoiceFilterWidget(forms.widgets.CheckboxSelectMultiple):
    template_name = 'project/widgets/filter.html'

    def render(self, data):
        ...
        Do stuff with data
        ...
        return mark_safe(render_to_string(self.template_name))


Django versión 1.11:

En la documentación del renderer, podemos encontrar lo siguiente:

Nuevo en Django 1.11:

En versiones anteriores, los widgets se representan con Python. Todas las API descritas en este documento son nuevas.

Y echando un vistazo al código fuente del widget y específicamente a cómo Input widget extiende el Widget clase, podemos ver que solo necesitaría personalizar su widget de la siguiente manera:

class MultiChoiceFilterWidget(forms.widgets.CheckboxSelectMultiple):
    template_name = 'project/widgets/filter.html'

Que es lo que ya tienes.

Valoraciones y comentarios

Nos puedes confirmar nuestra misión exponiendo un comentario o dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *