Verificare un campo
Fa parte della sezione Form del percorso Django di Coddy. Lezione 10 di 20.
Il modulo accetta eventi con data dell'anno scorso. Le regole integrate conoscono i tipi e i limiti, ma non il tuo sito. Una regola personalizzata per un singolo campo va inserita in un metodo il cui nome è clean_ più il nome del campo. Un modulo di registrazione che riserva il nome admin al personale:
class SignupForm(forms.Form):
username = forms.CharField(max_length=30)
def clean_username(self):
username = self.cleaned_data["username"]
if username.lower() == "admin":
raise forms.ValidationError("That name is reserved.")
return usernameis_valid() lo chiama dopo i controlli specifici del campo, quindi il valore è già convertito: un DateField restituisce una data. Sollevare forms.ValidationError rifiuta il campo e il messaggio appare sotto di esso.
Il metodo deve return il valore: ciò che restituisce finisce in cleaned_data. Senza return, il valore diventa None.
Sfida
FacileIn EventForm, rifiuta una data precedente a oggi con il messaggio The date cannot be in the past. Una data di oggi va bene.
Premi Run e aggiungi un evento con data di ieri.
Provalo tu
from django import forms
class EventForm(forms.Form):
title = forms.CharField(max_length=100)
date = forms.DateField()
place = forms.CharField(max_length=100)
description = forms.CharField(widget=forms.Textarea, required=False)
capacity = forms.IntegerField(min_value=1)
Tutte le lezioni di Form
2Moduli Django
Un modulo DjangoCreare un moduloEsercitati da solo: Playground Django