DjangoでのORMペアマルチモデルの追加、削除、変更、ノートの検索
class Colors(models.Model):
colors = models.CharField(max_length=10,verbose_name=' ')
class Meta:
vebose_name = ' '
vebose_name_plural = ' '
class Clothes(models.Model):
color = models.ForeignKey("Colors",verbose_name=' ')
description = models.CharField(max_length=10,verbosename=' ')
class Meta:
verbose_name = ' '
vebose_name_plural = ' '
一、調べる
(一)メインテーブルデータの検索:
1.プライマリ・テーブルからの直接クエリー:
color = models.Colors.objects.get(clothes__description=" ").colors) #
2.プライマリ・テーブルをテーブルから問い合わせるには、次の手順に従います。
color = models.Clothes.objects.get(description=" ").color.colors
(二)スレーブテーブルデータの検索:
1.プライマリ・テーブルからのクエリー:
color_obj = models.Colors.objects.get(colors=" ")
qs = color_obj.clothes_set.all() # _set , related_name , ( clothes_set)
2.テーブルからの問合せ:
(1)オブジェクトによるクエリー:qs = models.Clothes.objects.filter(color=models.Colors.objects.get(colors=" "))
# ( )
#qs = models.Clothes.objects.filter(color__colors=" ")
(2)idクエリによる:color_id=models.Colors.objects.get(colors=" ").id # id
qs = models.Clothes.objects.filter(color_id=color_id)
二、増加:
(一)オブジェクトを通過する:
models.Clothes.objects.create(color=models.Colors.objects.get(colors=" "),description=" ")
(二)idを通過する:
models.Clothes.objects.create(color_id=models.Colors.objects.get(colors=" ").id,description=" ")
三、削除
(一)
models.Clothes.objects.get(description=" ").delete() # QuerySet delete()
(二)
models.Colors.objects.filter(colors=" ").delete()
四、改める
(一)オブジェクトを通過する:
models.Clothes.objects.filter(color__colors=" ").update(description=" ")
(二)idを通過する:
models.Clothes.objects.filter(color_id=models.Colors.objects.get(colors=" ").id).update(description=" ")
(三)従表の_setメソッド逆クエリー:
colors_obj=models.Colors.objects.get(colors=" ")
colors_obj.clothes_set.filter(id__gte=1).update(description=" ")
# (Clothes) related_name( 'cls'), :
#colors_obj.cls.filter(id__gte=1).update(description=" ")
color = models.Colors.objects.get(clothes__description=" ").colors) #
color = models.Clothes.objects.get(description=" ").color.colors
color_obj = models.Colors.objects.get(colors=" ")
qs = color_obj.clothes_set.all() # _set , related_name , ( clothes_set)
qs = models.Clothes.objects.filter(color=models.Colors.objects.get(colors=" "))
# ( )
#qs = models.Clothes.objects.filter(color__colors=" ")
color_id=models.Colors.objects.get(colors=" ").id # id
qs = models.Clothes.objects.filter(color_id=color_id)
(一)オブジェクトを通過する:
models.Clothes.objects.create(color=models.Colors.objects.get(colors=" "),description=" ")
(二)idを通過する:
models.Clothes.objects.create(color_id=models.Colors.objects.get(colors=" ").id,description=" ")
三、削除
(一)
models.Clothes.objects.get(description=" ").delete() # QuerySet delete()
(二)
models.Colors.objects.filter(colors=" ").delete()
四、改める
(一)オブジェクトを通過する:
models.Clothes.objects.filter(color__colors=" ").update(description=" ")
(二)idを通過する:
models.Clothes.objects.filter(color_id=models.Colors.objects.get(colors=" ").id).update(description=" ")
(三)従表の_setメソッド逆クエリー:
colors_obj=models.Colors.objects.get(colors=" ")
colors_obj.clothes_set.filter(id__gte=1).update(description=" ")
# (Clothes) related_name( 'cls'), :
#colors_obj.cls.filter(id__gte=1).update(description=" ")
models.Clothes.objects.get(description=" ").delete() # QuerySet delete()
models.Colors.objects.filter(colors=" ").delete()
(一)オブジェクトを通過する:
models.Clothes.objects.filter(color__colors=" ").update(description=" ")
(二)idを通過する:
models.Clothes.objects.filter(color_id=models.Colors.objects.get(colors=" ").id).update(description=" ")
(三)従表の_setメソッド逆クエリー:
colors_obj=models.Colors.objects.get(colors=" ")
colors_obj.clothes_set.filter(id__gte=1).update(description=" ")
# (Clothes) related_name( 'cls'), :
#colors_obj.cls.filter(id__gte=1).update(description=" ")