Django Tutorial Part 3 -- Choice 테이브르를 CRUD する

7332 단어 djangocrud

前提



https://docs.djangoproject.com/en/4.0/intro/tutorial02/#playing-with-the-api

Django Tutorial の Part2 シェルで遊ぼう編をやる

環境は作ってあって、질문 とそれに基づく Choice モデルがある状態


질문 テーブルと関連する 선택 テーブルのカラムを取得する



テーブルの中身の取り方を調べる



https://docs.djangoproject.com/en/4.0/topics/db/queries/

https://qiita.com/okoppe8/items/66a8747cf179a538355b#%EF%BC%91%E5%AF%BE%EF%BC%91%EF%BD%8E%E5%AF%BE%EF%BC%91%E3%81%AE%E9%96%A2%E4%BF%82

TableName.objects.get(columnName=value)


普通にテーブルのカラムを取得するときはこれで取れて

リレーショナルになっていて、子供テーブルがある場合は

.childTableName_set.all()


これで取れる.

親が1つで子供が複数の場合は

TableName.objects.select_related('childTableName').get(id=1)


こうやって取得するらしい.


実際に子供테이불を取得




>>> Question.objects.get(pk=1)
<Question: What's up?>


ModelName.objects.get で参照すると、前回 str で仕込んだので中身が見える.primary key が 1 の Question modelのレコードを確認できた.

>>> q = Question.objects.get(pk=1)
>>> q.choice_set.all()
<QuerySet []>


これを q という変数に入れる
q の中の子供테이불の中身を表示する

子供テーブルのレコードを作成



>>> q.choice_set.create(choice_text='Not much', votes=0)
<Choice: Not much>
>>> q.choice_set.all()
<QuerySet [<Choice: Not much>]>

childTableName_set.create(column_name=값)
これで中身を新たに作成できる

子供테이불の中身を数える



>>> q.choice_set.count()
1

子供テーブルは
parent.childrenTable_set.count ででーたの数を数えられる

子供テーブルの中身を検索して削除する



>>> c = q.choice_set.filter(choice_text__startswith='Not')
>>> c
<QuerySet [<Choice: Not much>]>

>>> c.delete()
(1, {'polls.Choice': 1})

>>> q.choice_set.all()
<QuerySet []>
>>> 

.filter() で検索して、.delete() をする 이것으로 削除ができる

これで Tutorial に従って、子供テーブルの削除までの操作ができた.

まとめ



TableName.objects.get(columnName=value)

objects.get でテーブルの中のレコードを取得する ことができて

.childTableName_set.all()


_set.all でそのテーブルの中の子供テーーブルタチを取得できる

childTableName_set.create(column_name=value)


_set.create で子供テーブルの中身は作成できて

.filter で検索できて、.delete で削除できる.


次にやること



업데이트 を調べる

https://docs.djangoproject.com/en/4.0/intro/tutorial02/#introducing-the-django-admin

admin を作り、phpMyAdmin みたいなものを動作させる.

좋은 웹페이지 즐겨찾기