練習 - 建立模型

已完成

您可以藉由建立模型,定義任何重要欄位和資料的行為。 我們現在要為 dog_shelters 應用程式新增必要的模型。

建立模型

此流程的第一個步驟是新增模型。 Django 提供名為 models.py 的空白檔案,可供您在模型中使用。

  1. 在 Visual Studio Code 中開啟 dog_shelters/models.py 檔案。

  2. 在註解 Create your models here 下輸入下列程式碼,以新增兩個 Python 類別來包含模型:

    # 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
    

新增這些模型之後,我們就有了收容中心與流浪狗的表述。 請注意 DogShelter 之間的關聯性:Shelter 類別可以存放許多 Dog 值。 另請注意 intake_dateauto_now_add 值。 若未提供自訂日期,則會自動將欄位設定為目前的日期。

我們也會在 Dog 類別中使用 ForeignKey。 這部分會告訴 Django,DogShelter 之間具有關聯性。 藉由定義此關聯性,我們便能告訴 Django 每隻流浪狗都與一間收容所相關聯。

註冊模型

所有應用程式都必須向 Django 中的專案註冊。 這可能有點違反直覺,但專案內包含應用程式資料夾,不表示該應用程式資料夾能夠自動載入。 我們需要將其新增至 INSTALLED_APPS 清單加以註冊。

  1. 尋找 dog_shelters 資料夾內的設定類別名稱。 若要尋找此類別名稱,請前往 dog_shelters/apps.py 檔案,並在下列程式碼中檢查類別名稱是否為 DogSheltersConfig

    class DogSheltersConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'dog_shelters'
    
  2. project 中開啟 settings.py

  3. 將完整路徑新增至註解 #[TODO] - Add the app to the list of INSTALLED_APPS 下的類別名稱:

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

    INSTALLED_APPS 清單現已包含下列項目:

    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',
    ]
    

    將這行新增至 INSTALLED_APPS 清單中會告訴 Django,此應用程式在執行專案時必須包含在內。

摘要

您現在已為您的 Django 應用程式建立了兩個模型。 建立模型是所有 Django 專案的基礎。