Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

212
Vistas
La palabra clave de plantilla de Django `choice_value` ya no funciona en 1.11

Hay una casilla de verificación múltiple en la plantilla, si el valor contiene en el renderizado, la opción se marcará de forma predeterminada. Funciona bien con 1.10.

formulario.py:

 class NewForm(forms.Form): project = forms.ModelMultipleChoiceField( widget=forms.CheckboxSelectMultiple, queryset=Project.objects.filter(enable=True) )

modelo:

 {% for p in form.project %} <label for="{{ p.id_for_label }}"> <input type="checkbox" name="{{ p.name }}" id="{{ p.id_for_label }}" value="{{ p.choice_value }}" {% if p.choice_value|add:"0" in form.project.initial %} checked{% endif %}> <p>{{ p.choice_label }}</p> </label> {% endfor %}

vistas.py:

 def order_start(request, order_id): if request.method == 'POST': form = NewForm(request.POST) if form.is_valid(): order.end_time = timezone.now() order.save() order.project = form.cleaned_data['project'] order.save() return HttpResponsec(order.id) else: form = NewForm(initial={ 'project': [p.pk for p in order.project.all()], }) return render(request, 'orders/start.html', {'form': form, 'order': orderc})

Cuando actualizo a Django 1.11, {{ p.name }} y {{ p.choice_value }} no devuelven nada. Sé que 1.11 eliminó choice_value , pero ¿cómo resolver este problema?

1.10 https://docs.djangoproject.com/en/1.10/_modules/django/forms/widgets/
1.11 https://docs.djangoproject.com/en/1.11/_modules/django/forms/widgets/

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como los comentarios de @L_S. Depuro con dir(form) , todos los valores contenidos en form.project.data aquí está el código correcto:

 {% for choice in form.project %} <labelc for="{{ choice.id_for_label }}"> <input type="checkbox" name="{{ choice.data.name }}" id="{{ choice.id_for_label }}" value="{{ choice.data.value }}"{% if choice.data.selected %} checked{% endif %}> {{ choice.data.label }} </label> {% endfor %}
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda