Tengo un formulario con casillas de verificación que funciona bien, pero cuando el usuario envía el formulario con errores y mi casilla de verificación está marcada necesito cambiar div class que contiene la casilla de verificación. Así que yo estaba experimentando con {{ form.mycheckbox.data }} en la plantilla y dice Falso en la página de carga. Ahora cuando el usuario haga clic en una casilla de verificación y la forma que tiene errores, dice en. Así que he intentado:

{{ if form.mycheckbox.data == True }} no funciona

{{ if form.mycheckbox.data != False }} no funciona

{{ if form.mycheckbox.data == 'on' }} no funciona

{{ if form.mycheckbox.data == on }} no funciona

  • Yo era hacer error tipográfico con div class nombre ==’en’ obras. Lo siento
InformationsquelleAutor Goran | 2011-09-06

5 Comentarios

  1. 20

    Uso {% if form.mycheckbox.value %}. Esto se evalúa como true si la casilla está marcada. Para el comportamiento opuesto, el uso de {% if not form.mycheckbox.value %}.

    Nota la sintaxis es {% if ... %}, no {{ if ...}}. Por ciento-entre paréntesis son para los comandos, haga doble paréntesis son para la salida de las variables.

  2. 16

    En models.py:

    class Article:
        published = BooleanField()
        (...)

    En la plantilla:

     <input type="checkbox" name="published" {% if article.published %}checked{% endif %} />
  3. 5

    Trabajo para mí:

    {% for foo in form.tags %}
      <label class="publication-tag">
        <input class="publication-tag__checkbox"
          {% if foo.choice_value in foo.value %}checked="checked"{% endif %}
          type="checkbox" 
          name="{{ foo.name }}"
          value="{{ foo.choice_value }}">
    {% endfor %}

    Que:

    {% if foo.choice_value in foo.value %}checked="checked"{% endif %}
    • Una corrección de la anterior if condition es {% if foo.choice_value in forms.tags.value %}checked="checked"{% endif %}
    • {% if foo.choice_value in foo.value %} Este funciona bien.
  4. 0

    Mientras que, en primer lugar usted debe utilizar BooleanField en su modelo, no la CharField.
    Entonces, hay dos accesos:

    • acaba de poner {{formulario.yourField}} en la plantilla (de preferencia)

    • o, use {% si el formulario.yourFiled.valor %} comprobado {%endif%}

  5. -2

    Plantillas de Django son evaluados en el lado del servidor.

    Creo que usted desee ver en JavaScript para comprobar el estado de sus casillas de verificación. Hacer con el lenguaje de plantillas (especialmente el que viene incluido con Django) es una idea realmente mala.

    Cualquier procesamiento de /para el cálculo se debe hacer en el punto de vista de la función /clase.

    • ¿Qué acerca del uso Jinja2? En general, usted diría que es mucho más rápido que Django es incorporado el sistema de plantillas?

Dejar respuesta

Please enter your comment!
Please enter your name here