django模型類一查多,多查一

2021-08-30 11:28:51 字數 1718 閱讀 9641

from django.db import models

class book(models.model):

"""圖書"""

name = models.charfield(max_length=30, verbose_name='書名')

pub_date = models.datefield(verbose_name='發布日期')

read = models.integerfield(default=0, verbose_name='閱讀量')

is_delete = models.booleanfield(default=false, verbose_name='邏輯刪除')

class meta:

db_table = 'tb_book'

verbose_name = '圖書'

verbose_name_plural = verbose_name

def __str__(self):

return self.name

class hero(models.model):

"""英雄"""

gender_choices = (

(0, 'male'),

(1, 'female')

)name = models.charfield(max_length=30, verbose_name='英雄名')

gender = models.smallintegerfield(choices=gender_choices, default=0, verbose_name='性別')

comment = models.charfield(max_length=100, null=true, blank=true, verbose_name='描述資訊')

book = models.foreignkey(book, on_delete=models.cascade, related_name='hero', verbose_name='圖書')

is_delete = models.booleanfield(default=false, verbose_name='邏輯刪除')

class meta:

db_table = 'tb_hero'

verbose_name = '英雄'

verbose_name_plural = verbose_name

def __str__(self):

return self.name

一對多關係

一:book

多:hero

1.一查多,django預設自帶乙個關鍵字,多的表名小寫_set

b=book.objects.get(id=1)

b.hero_set.all()-->

但是如果:book = models.foreignkey(book, on_delete=models.cascade, related_name='hero', verbose_name='圖書')

新增了related_name='hero',則用法改變,hero_set失效.

b=book.objects.get(id=1)

b.hero.all()-->

2.多查一,因為多的一方已經儲存了一的一方的外來鍵屬性,所以可以直接用

2867 加法表,一查就清楚

time limit 1 sec memory limit 128 mb submit 188 solved 131 submit status web board 算乘法常要用乘法表,熊孩子小明做加法也要查表!這嬌慣出來的孩子啊,給他乙個吧 請輸入1 9中的乙個數n,輸出n以內的所有數相加之和 乙...

maybatis一對多 多對一查詢

1.mybatis 一對多的三種實現方式 查詢1的一方把多的一方查出來 方式1 1的一方 warning mbg.generated 一對多 conllection標籤 property 一的類中持有多的集合的引用 oftype 多的一方集合的型別 select 在多的一方的xml中寫查詢語句 把要...

django 一對一查詢

用django 自帶orm對映查詢資料時。一對一關係可以互相查對方屬性 自己定義的supplier中user跟django.contrib.auth.models中 user是一對一關係 class supplier models.model 供貨商 user models.onetoonefiel...