django中orm创建表的对应关系

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)
原文地址:https://www.cnblogs.com/Ghostant/p/12157179.html