【Django】モデルについていろいろ書く#1
はじめに
最近書けていなかったのでたまには更新しようかなと思います。
モデルのページを順に読んで気になったところはメモしていくっていう形で書いています。
モデルとデータベース | Django ドキュメント | Django
基本
# ドキュメントから引用 from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30)
こんな感じで適当に書いたらmaemigrationsコマンドを実行
アプリ/migratinosにファイルが生成されるのでmigrateでデータベースに入力される
python manage.py sqlmigrate app 0001でSQL文の発行ができる
フィールドオプション
null,blank,choices,default,help_text,primary_key,uniqueの7つです
これらはどのフィールドでも利用できるそうです。
DateFieldのdefaultには設定方法は複数はあります。
from django.utils import timezone class DateFieldSample(models.Model): a = models.DateField(auto_now=True) # 更新日時などに使う b = models.DateField(auto_now_add=True) # 作成日時などに使う c = models.DateField(default=timezone.now) # cと同じ、datetimeはダメ
a,bでは手動で日時を変えられないことに注意。
私はadminサイトでトラブルに合いました。
uniqueは複数フィールドでの設定もできます。
class Meta: db_table = 'kinmu' constraints = [ models.UniqueConstraint( fields=['name', 'hiduke'], name="name_hiduke_unique" ) ]
今日はここまでにします。お疲れ様でした。