django中的orm支持帮我们创建表与表之间的对应关系。一对一,一对多,及多对多。
如我们要创建
- 图书表
- 出版社表
- 作者表
- 作者详情表
图书表与出版社表是一对多的关系。(假设一本书只能由一个出版社出版)
图书表与作者表之间是多对多的关系。
作者表与作者详情表之间是一对一的关系。
models.py
-------------------------
class Book(models.Model):
title = models.CharField(max_length=254)
price = models.DecimalField(max_digits=8, decimal_places=2)
# 与出版社的外键对应关系 一对多
publish = models.ForeignKey(to='Publish')
# 与作者的对应关系 多对多---会自动生成 关联表
author = models.ManyToManyField(to='Author')
class Author(models.Model):
name = models.CharField(max_length=254)
phone = models.BigIntegerField()
# 与作者详情表的对应关系 一对多
author_detail = models.OneToOneField(to='AuthorDetail')
class AuthorDetail(models.Model):
age = models.IntegerField()
addr = models.CharField(max_length=254)
class Publish(models.Model):
name = models.CharField(max_length=254)
addr = models.CharField(max_length=254)