Django 3. 基本概念2(モデル、Query Set)
1. Models
この文書では、モデルがデータベース・フレームワークを作成する役割を果たします.
入力
adminは、作成したモデルをインポートし、格納されたデータを管理します.pyのadmin.site.register(モデル名)を入力します.
デフォルト入力を選択するためにデータを作成する必要がある場合は、次のようにオプションを作成し、フィールドにオプション=変数名オプションを選択します.
クエリー・セットは、データベースからインポートされたオブジェクトのセットです.クエリー・セットでは、1つ以上のフィルタを使用できるため、条件に応じてクエリーの結果を減らすことができます.使用する形式は次のとおりです.
オブジェクト1.オブジェクト2 setは、オブジェクト1内のオブジェクト2に対応するすべてのクエリーセットを生成します.
テーブルで参照される外部キーテーブルのフィールドを取得するには、filter(外部キーフィールド名=「フィールド値」)を使用します.ここに下線が2本あります.(Double Underscore)
この文書では、モデルがデータベース・フレームワークを作成する役割を果たします.
class Customer(models.Model):
name=models.CharField(max_length=200, null=True)
phone=models.CharField(max_length=200, null=True)
email=models.CharField(max_length=200, null=True)
date_created=models.DateTimeField(auto_now_add=True, null=True)
# 데이터 개체를 출력할 때 name속성의 값으로 출력해주는 메소드
def __str__(self):
return self.name
モデルはクラスとして作成され、各プロパティはデータ・テーブルの列になります.モデルを作成する場合は、移行と呼ばれるデータベースに反映する必要があります.入力
python manage.py makemigrations
は変更内容を示し、入力python manage.py migrate
は変更内容をデータベースに反映します.adminは、作成したモデルをインポートし、格納されたデータを管理します.pyのadmin.site.register(モデル名)を入力します.
デフォルト入力を選択するためにデータを作成する必要がある場合は、次のようにオプションを作成し、フィールドにオプション=変数名オプションを選択します.
class Order(models.Model):
STATUS=(
('Pending', 'Pending'),
("Out for delivery", "Out for delivery"),
("Delivered", 'Delivered'),
)
...
status=models.CharField(max_length=200, null=True, choices=STATUS)
通常、データフィールドの作成時に1:N関係が作成されますが、N:M関係が必要なデータもあります.このため、本明細書では、フィールドフォーマットManyToManyField
を用いる.class Tag(models.Model):
name=models.CharField(max_length=200, null=True)
def __str__(self):
return self.name
class Product(models.Model):
CATEGORY=(
('Indoor', 'Indoor'),
('Outdoor', 'Outdoor'),
)
name=models.CharField(max_length=200, null=True)
price=models.FloatField()
category=models.CharField(max_length=200, null=True, choices=CATEGORY)
description=models.CharField(max_length=200, null=True, blank=True)
date_created=models.DateTimeField(auto_now_add=True, null=True)
# Product 테이블과 Tag 테이블이 N:M관계이다.
tags=models.ManyToManyField(Tag)
2. QuerySetクエリー・セットは、データベースからインポートされたオブジェクトのセットです.クエリー・セットでは、1つ以上のフィルタを使用できるため、条件に応じてクエリーの結果を減らすことができます.使用する形式は次のとおりです.
queryset = Customer.objects.all()
変数名=モデル名.モデルオブジェクトのプロパティ.メソッドの順序に従って作成されます.メソッドのタイプはたくさんありますが、すべてのオブジェクトのall()をインポートし、条件に合致するオブジェクトのget()をインポートし、条件に合致するすべてのオブジェクトのfilter()をインポートします.オブジェクト1.オブジェクト2 setは、オブジェクト1内のオブジェクト2に対応するすべてのクエリーセットを生成します.
テーブルで参照される外部キーテーブルのフィールドを取得するには、filter(外部キーフィールド名=「フィールド値」)を使用します.ここに下線が2本あります.(Double Underscore)
Reference
この問題について(Django 3. 基本概念2(モデル、Query Set)), 我々は、より多くの情報をここで見つけました https://velog.io/@jiffydev/Django-3.-기본-개념2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol