Saltar al contenido

Django comprueba si la casilla de verificación está seleccionada

Si encuentras algo que no entiendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo mas rápido que podamos.

Solución:

Botones de radio:

En el HTML de sus botones de radio, necesita que todas las entradas de radio relacionadas compartan el mismo nombre, tengan un “valor” predefinido attributey, de manera óptima, tener una etiqueta de etiqueta circundante, como esta:

Luego, en su vista, puede buscar cuál se seleccionó al verificar el “nombre” compartido attribute en los datos POST. Su valor será el “valor” asociado attribute de la etiqueta de entrada HTML:

# views.py
def my_view(request):
    ...
    if request.method == "POST":
        display_type = request.POST.get("display_type", None)
        if display_type in ["locationbox", "displaybox"]:
            # Handle whichever was selected here
            # But, this is not the best way to do it.  See below...

Eso funciona, pero requiere controles manuales. Es mejor crear primero un formulario Django. Entonces Django hará esas comprobaciones por ti:

formularios.py:

from django import forms

DISPLAY_CHOICES = (
    ("locationbox", "Display Location"),
    ("displaybox", "Display Direction")
)

class MyForm(forms.Form):
    display_type = forms.ChoiceField(widget=forms.RadioSelect, choices=DISPLAY_CHOICES)

su_plantilla.html:

# This will display the radio button HTML for you # form.as_p # You'll need a submit button or similar here to actually send the form #

vistas.py:

from .forms import MyForm
from django.shortcuts import render

def my_view(request):
    ...
    form = MyForm(request.POST or None)
    if request.method == "POST":
        # Have Django validate the form for you
        if form.is_valid():
            # The "display_type" key is now guaranteed to exist and
            # guaranteed to be "displaybox" or "locationbox"
            display_type = request.POST["display_type"]
            ...
    # This will display the blank form for a GET request
    # or show the errors on a POSTed form that was invalid
    return render(request, 'your_template.html', 'form': form)

Casillas de verificación:

Las casillas de verificación funcionan así:

formularios.py:

class MyForm(forms.Form):
    # For BooleanFields, required=False means that Django's validation
    # will accept a checked or unchecked value, while required=True
    # will validate that the user MUST check the box.
    something_truthy = forms.BooleanField(required=False)

vistas.py:

def my_view(request):
    ...
    form = MyForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            ...
            if request.POST["something_truthy"]:
                # Checkbox was checked
                ...

Otras lecturas:

https://docs.djangoproject.com/en/1.8/ref/forms/fields/#choicefield

https://docs.djangoproject.com/en/1.8/ref/forms/widgets/#radioselect

https://docs.djangoproject.com/en/1.8/ref/forms/fields/#booleanfield

en modelos :

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

En la plantilla:

% for tag in tags %

% endfor %

Suponiendo que está enviando el formulario como POST, los valores de las casillas de verificación seleccionadas están en request.POST.getlist(‘tag’).

Por ejemplo :





Digamos que si se marcó 1,4,

check_values = request.POST.getlist('tag')

check_values ​​contendrá [1,4] (aquellos valores que fueron comprobados)

valoraciones y comentarios

Si piensas que te ha sido de utilidad nuestro artículo, nos gustaría que lo compartas con el resto seniors de esta manera contrubuyes a extender esta información.

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



Utiliza Nuestro Buscador

Deja una respuesta

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