djangoでForeignKeyを持つテーブルにオブジェクトを指定してcreateしてみる
djangoでForeignKeyを持つテーブルにオブジェクトを指定してcreateしてみる
ORMについてはチートシートを作っていなかったので少しずつ増やしていきたいと思います。
モデル
モデルは下の通り。
from django.db import models
class Writer(models.Model):
name = models.CharField(max_length=128)
class Article(models.Model):
writer = models.ForeignKey(Writer, on_delete=models.CASCADE , related_name='articles')
title = models.CharField(max_length=512)
contents = models.TextField()
プログラム
プログラムは下の通り。
python3.6 manage.py shell
# モデルをインポートする。
>>> from myapp.models import Writer, Article
# 筆者のオブジェクトを取得する。
>>> selected_writer = Writer.objects.get(id=1)
# 筆者のオブジェクト(satoh)を確認する。
>>> vars(selected_writer)
{'_state': , 'id': 1, 'name': 'satoh'}
# 筆者のオブジェクトから ForeignKey のフィールドを指定して本のオブジェクトを取得する。
>>> selected_articles = Article.objects.filter(writer=selected_writer)
# 筆者のオブジェクトから ForeignKey のフィールドを指定して本のデータを生成しオブジェクトを取得する。
>>> created_article = Article.objects.create(writer=selected_writer, title='go', contents='go for beginner')
# 生成した本のおジェクトを確認する。
>>> vars(created_article)
{'_state': , 'id': 6, 'writer_id': 1, 'title': 'go', 'contents': 'go for beginner'}
ディスカッション
コメント一覧
まだ、コメントがありません