メモ:django
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
メモ:django [2019/05/29 16:29] – [データベース] Wiki Editor | メモ:django [2019/05/30 10:47] – [Modelの作成] Wiki Editor | ||
---|---|---|---|
行 139: | 行 139: | ||
hs_code = models.CharField(max_length=10) | hs_code = models.CharField(max_length=10) | ||
hs = models.CharField(max_length=200) | hs = models.CharField(max_length=200) | ||
+ | | ||
+ | def __str__(self): | ||
+ | return self.categ + self.hs | ||
| | ||
class Report: | class Report: | ||
行 145: | 行 148: | ||
report_field02 = models.CharField(max_length=1000) | report_field02 = models.CharField(max_length=1000) | ||
report_field03 = models.CharField(max_length=1000) | report_field03 = models.CharField(max_length=1000) | ||
+ | | ||
+ | def __str__(self): | ||
+ | return str(hs_code) + self.report_field01 | ||
+ | | ||
1つのテーブルは1つのクラスとして定義される。クラスのサブクラスや変数で様々な挙動が設定できる。最も基本的な設定として、クラスの変数がデータベースに対応する。変数にデータの型や外部キーなどを設定していく。 | 1つのテーブルは1つのクラスとして定義される。クラスのサブクラスや変数で様々な挙動が設定できる。最も基本的な設定として、クラスの変数がデータベースに対応する。変数にデータの型や外部キーなどを設定していく。 | ||
+ | クラス内の「__str__」関数は、モデルのオブジェクト表現となる。管理画面で一覧表示するときなどに使われる文字列を定義できる。 | ||
==== Modelをフレームワークに認識させる ==== | ==== Modelをフレームワークに認識させる ==== | ||
migrationでテーブルを管理するために、フレームワークに作成したアプリケーションを認識させる必要がある。先に示したsettings.pyのINSTALLED_APPに列挙すればよい。 | migrationでテーブルを管理するために、フレームワークに作成したアプリケーションを認識させる必要がある。先に示したsettings.pyのINSTALLED_APPに列挙すればよい。 | ||
行 166: | 行 174: | ||
ここで記述するのはアプリケーションのクラス名となる。プロジェクトディレクトリからクラスをたどって記述する。ここでは、reportアプリケーションのapps.pyファイルに定義されているReportConfigクラスとなる。このクラスはstartappでアプリケーションを作成した際に自動的に生成される。 | ここで記述するのはアプリケーションのクラス名となる。プロジェクトディレクトリからクラスをたどって記述する。ここでは、reportアプリケーションのapps.pyファイルに定義されているReportConfigクラスとなる。このクラスはstartappでアプリケーションを作成した際に自動的に生成される。 | ||
+ | ===== データベースへの反映 ===== | ||
+ | 定義したモデルに対応してバックエンドのデータベースを作成する。 | ||
+ | $ python manage.py makemigrations report | ||
+ | makemigrationsコマンドでモデルの変更を検出し、migrationの定義ファイルを生成する。ポイントは、この時点でデータベースへの変更は一切行われていない点である。migrationの定義内容は、report/ | ||
+ | migrationで実行される具体的なSQLを確認する。 | ||
+ | $ python manage.py sqlmigrate report 0001 | ||
+ | 最後の引数はmigrationの定義ファイルのファイル名に対応する。何度もモデルを変更すると、そのたびにmigrationが生成され、履歴が残るようになっているようだ。対象となるファイルのmigration内容を確認するために、ファイルの番号を指定する。 | ||
+ | 必要なテールが意図通りに作成されることが確認できれば、再度migrationを行いバックエンドのデータベースに反映させる。 | ||
- | + | $ python manage.py migrate | |
メモ/django.txt · 最終更新: 2019/06/05 17:30 by Wiki Editor