Le fixture di Django sono un modo di caricare dati nel tuo database da file. Queste file vengono utilizzate per popolare il database con dati di esempio per le prove, caricare i dati di inizializzazione che l’applicazione richiede prima del lancio, o di creare set di dati di prova per l’utilizzo durante lo sviluppo.
Nel contesto di Django, una fixture è una collezione di dati che Django sa come importare in un database. Il formato più comunemente utilizzato per le fixture è il JSON, ma possono essere scritte anche in XML e YAML, o create in Python.
Ecco un esempio di una fixture di Django in formato JSON:
```
[
{
“model”: “myapp.person”,
“pk”: 1,
“fields”: {
“first_name”: “John”,
“last_name”: “Lennon“
}
},
{
“model”: “myapp.person”,
“pk”: 2,
“fields”: {
“first_name”: “Paul”,
“last_name”: “McCartney“
}
}
]
```
Questa fixture definisce due persone (John Lennon e Paul McCartney), che possono essere caricate nel database dell’applicazione eseguendo il comando `loaddata` di Django: `python manage.py loaddata mydata.json`.
Oltre a creare manualmente le fixture, Django fornisce anche un comando `dumpdata` per creare delle fixture dai dati attualmente nel database. Questo può essere molto utile per creare copie dei dati in fase di test o di sviluppo.
Uno dei principali vantaggi dell’utilizzo delle fixture è che possono essere versionate e condivise tra i membri del team di sviluppo. Questo significa che tutti nel team possono lavorare con gli stessi dati di base, rendendo il processo di sviluppo più coerente e collaborativo.
Sorgenti per la costruzione di questa risposta includono la documentazione ufficiale di Django (https://docs.djangoproject.com/en/3.2/howto/initial-data/), il libro “Two Scoops of Django: Best Practices For Django 1.8” di Daniel e Audrey Roy Greenfeld, e varie risposte su Stack Overflow riguardanti l’uso delle fixture in Django (https://stackoverflow.com/questions/2584515/explanation-of-django-fixture-concept).