演習 - モデルを作成する
モデルを作成すると、すべての必須フィールドとデータの動作を定義できます。 dog_shelters アプリケーションに必要なモデルを追加してみましょう。
モデルを作成する
プロセスの最初の手順は、モデルを追加することです。 Django には、モデルに使用できる models.py という名前の空のファイルが用意されています。
Visual Studio Code で dog_shelters/models.py ファイルを開きます。
コメント
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
これらのモデルを追加すると、シェルターと犬の表現ができます。 Dog
と Shelter
の間のリレーションシップに注意してください。Shelter
クラスは、多くの Dog
値を格納できます。 また、intake_date
の auto_now_add
値にも注意してください。 カスタム日付が指定されていない場合、フィールドは現在の日付に自動的に設定されます。
また、Dog
クラスでも ForeignKey
を使用しています。 この部分では、Dog
と Shelter
の間にリレーションシップがあることを Django に示します。 このリレーションシップを定義することで、すべての犬が単一のシェルターに関連することを Django に指示しています。
モデルを登録する
すべてのアプリケーションが Django のプロジェクトに登録されている必要があります。 これは経験にそぐわない考えかもしれませんが、アプリケーション フォルダーがプロジェクト内に存在するからといって、それが自動的に読み込まれるというわけではありません。 これを INSTALLED_APPS
一覧に追加して登録する必要があります。
dog_shelters フォルダー内の構成クラス名を探します。 このクラス名を検索するには、dog_shelters/apps.py ファイルにアクセスし、クラス名が次のコードの
DogSheltersConfig
であることを確認します。class DogSheltersConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'dog_shelters'
"プロジェクト" で settings.py を開きます。
コメント
#[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 プロジェクトの基礎です。