Modifica il testo dell'etichetta in base al tipo di campo nei moduli Django

Vaibhav Vaibhav 29 giugno 2021
Modifica il testo dell'etichetta in base al tipo di campo nei moduli Django

Django è un framework web diversificato che viene fornito con funzionalità robuste. Gestisce facilmente attività complesse come autenticazione, sessioni, invio di e-mail, ecc. Ci consente di creare pagine HTML dinamiche, gestire in modo efficiente i database, progettare rapidamente moduli, visualizzare i dati nel modello HTML utilizzando il linguaggio di template di Django, ecc.

In generale, a volte dobbiamo usare un valore specifico per un altro valore specifico. Consideralo come una coppia chiave-valore. A una chiave particolare è associato un valore particolare.

E se dovessimo variare il nome dell’etichetta in base al tipo di campo o visualizzare un testo specifico per un particolare campo in Django? Questo articolo parla della stessa cosa.

Cambia il nome dell’etichetta usando il linguaggio dei modelli Django

In un file HTML, utilizzando il linguaggio di template di Django, possiamo accedere al tipo di campo utilizzando la seguente istruzione.

{{ fieldName.field.widget.input_type }}

Usando questo trucco, possiamo variare i nomi delle etichette in base ai tipi di campo.

Nel dizionario contestuale di una vista di un modello, aggiungere quanto segue.

"fieldLabels": [
    ("text", "Label for Text Field"),
    ("password", "Label for Password Field"),
    ("file", "Label for File Field"),
    ("number", "Label for Number Field"),
    ...,
]

L’elenco sopra memorizza le tuple nel formato ("field type", "label text"). Possiamo iterare su queste tuple nei modelli e visualizzare le informazioni richieste in base a una condizione if.

All’interno di un modello, fai qualcosa di simile.

{% for field in form.visible_fields %}  
        {% for fieldName, label in fieldLabels %}
            {% if fieldName == field.field.widget.input_type  %}
                <div>
                    <label>{{ label }}</label>
                    {{ field }}
                </div>
            {% endif %}
        {% endfor %}
{% endfor %}

Il codice sopra scorre su tutti i valori di fieldLables per ogni campo del modulo e, se il nome di un campo corrisponde, viene visualizzato il rispettivo testo dell’etichetta.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.