Övning – Skapa modeller

Slutförd

Genom att skapa en modell kan du definiera alla viktiga fält och beteendet för dina data. Nu ska vi lägga till de modeller som behövs för dog_shelters-programmet.

Skapa modeller

Det första steget i processen är att lägga till modellerna. Django innehåller en tom fil med namnet models.py som du kan använda för dina modeller.

  1. Öppna filen dog_shelters/models.py i Visual Studio Code.

  2. Lägg till två Python-klasser som ska innehålla modellerna genom att ange följande kod under kommentaren Create your models here:

    # Create your models here
    class Shelter(models.Model):
        name = models.CharField(max_length=200)
        location = models.CharField(max_length=200)
        def __str__(self):
            return self.name
    
    class Dog(models.Model):
        shelter = models.ForeignKey(Shelter, on_delete=models.PROTECT)
        name = models.CharField(max_length=200)
        description = models.TextField()
        intake_date = models.DateTimeField(auto_now_add=True)
        def __str__(self):
            return self.name
    

Genom att lägga till dessa modeller har vi nu en representation för skyddsrum och hundar. Observera relationen mellan Dog och : en Shelter klass kan innehålla många DogSheltervärden. Observera också värdet auto_now_add för intake_date. Fältet anges automatiskt till aktuellt datum om ett anpassat datum inte anges.

Vi använder ForeignKey också i Dog klassen. Den här delen berättar för Django att det finns en relation mellan Dog och Shelter. Genom att definiera det här förhållandet säger vi till Django att varje hund är relaterad till ett enda skydd.

Registrera modellen

Alla program måste registreras med projektet i Django. Det kan verka lite kontraintuitivt, men bara för att det finns en programmapp i ett projekt betyder det inte att det läses in automatiskt. Vi måste registrera den genom att lägga till den i INSTALLED_APPS listan.

  1. Leta reda på namnet på konfigurationsklassen i mappen dog_shelters . Om du vill hitta det här klassnamnet går du till filen dog_shelters/apps.py och kontrollerar att klassnamnet finns DogSheltersConfig i följande kod:

    class DogSheltersConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'dog_shelters'
    
  2. Öppna settings.py i projektet.

  3. Lägg till den fullständiga sökvägen till klassnamnet under kommentaren #[TODO] - Add the app to the list of INSTALLED_APPS:

        #[TODO] - Add the app to the list of INSTALLED_APPS
        'dog_shelters.apps.DogSheltersConfig',
    

    Listan INSTALLED_APPS innehåller nu följande objekt:

    INSTALLED_APPS = [
        #[TODO] - Add the app to the list of INSTALLED_APPS
        'dog_shelters.apps.DogSheltersConfig',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    

    Om du lägger till raden i INSTALLED_APPS listan meddelar du Django att den här appen måste inkluderas när den kör projektet.

Sammanfattning

Nu har du skapat två modeller för ditt Django-program. Att skapa modeller är grunden för alla Django-projekt.