演習 - モデルを作成する

完了

モデルを作成すると、すべての必須フィールドとデータの動作を定義できます。 dog_shelters アプリケーションに必要なモデルを追加してみましょう。

モデルを作成する

プロセスの最初の手順は、モデルを追加することです。 Django には、モデルに使用できる models.py という名前の空のファイルが用意されています。

  1. Visual Studio Code で dog_shelters/models.py ファイルを開きます。

  2. コメント Create your models here の下に次のコードを入力して、モデルを格納する 2 つの 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 を使用しています。 この部分では、DogShelter の間にリレーションシップがあることを Django に示します。 このリレーションシップを定義することで、すべての犬が単一のシェルターに関連することを 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. "プロジェクト"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 アプリケーション用に 2 つのモデルが作成されました。 モデルの作成は、すべての Django プロジェクトの基礎です。