Abbiamo detto che ogni attributo del modello corrisponda ad un campo della tabella nel DB. Per definire gli attributi ci serviamo della classe Field, dalla quale derivano i tipi di dato da associare ai singoli campi (proprietà o attributi delle classi).
Questi tipi di dato, relativi al modello a oggetti, sono poi tradotti nei corrispettivi tipi di dato di MySQL.
| Tipo Django | Tipo MySQL |
|---|---|
CharField |
VARCHAR |
IntegerField |
INTEGER |
BooleanField |
BOOLEAN |
DateField |
DATE |
DateTimeField |
DATETIME |
TextField |
TEXT |
Possiamo anche creare un nuovo tipo, estendendo la classe Field, ma questo esula dagli scopi di questa guida.
Ogni tipo accetta un certo insieme di argomenti, ad esempio il tipo CharField richiede che sia specificato il parametro max_length, ovvero la dimensione dal campo VARCHAR corrispondente.
Ci sono però alcuni argomenti, opzionali, che sono comuni a tutti i tipi, ecco i più importanti:
| Argomento | impostato mediante | descrizione |
|---|---|---|
| null | null=True |
indica che l'attributo accetta valori NULL |
| blank | blank=True |
utilizzato dalle procedure di validazione di Django per identificare gli attributi richiesti e quelli facoltativi (possono essere lasciati vuoti) |
| default | default=<valore> |
imposta il valore di default del campo |
| help_text | help_text="<testo>" |
testo visualizzato nell'interfaccia di amministrazione dell'applicazione |
| primary_key | primary_key=True |
definisce il campo come chiave privata (se nessun attributo del modello contiene questa opzione, viene creata automaticamente una chiave primaria id, di tipo IntegerField auto incrementale) |
| unique | unique=True |
imposta l'attributo come univoco per la tabella |
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: