一對多的表結構 外鍵是在多的那張表裏面建的。以下圖git
#書和出版社是多對一的關係。 #書 class Book(models.Model): title = models.CharField(max_length=32) publish_date = models.DateField(auto_now_add=True) price = models.DecimalField(max_digits=5, decimal_places=2) # 建立外鍵,關聯publish publisher = models.ForeignKey(to="Publisher") #出版社 class Publisher(models.Model): name = models.CharField(max_length=32) city = models.CharField(max_length=32)
數據以下spa
1 正向查詢(有外鍵的類)code
使用values('你類中外鍵的那個字段,而後__外鍵的那個的字段') 就能夠查詢了。以下圖對象
以下的方法blog
get()ci
first()get
last()it
語法:ast
對象.關聯字段.字段class
示例:
book_obj = models.Book.objects.first() # 第一本書對象 print(book_obj.publisher) # 獲得這本書關聯的出版社對象 print(book_obj.publisher.name) # 獲得出版社對象的名稱
all()
filter()
exclude()
order_by()
reverse()
distinct()
語法:
關聯字段__字段
示例:
print(models.Book.objects.values_list("publisher__name"))
get()
first()
last()
語法:
obj.表名_set
示例:
publisher_obj = models.Publisher.objects.first() # 找到第一個出版社對象 books = publisher_obj.book_set.all() # 找到第一個出版社出版的全部書 titles = books.values_list("title") # 找到第一個出版社出版的全部書的書名
all()
filter()
exclude()
order_by()
reverse()
distinct()
語法:
表名__字段
示例:
titles = models.Publisher.objects.values_list("book__title")