Django 之 ORM表之间的外键关联与多对多

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 之 ORM表之间的外键关联与多对多相关的知识,希望对你有一定的参考价值。

实现环境表结构:

技术图片

models.py表单创建与代码

from django.db import models

# Create your models here.

class Publisher(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64,null=False,unique=True)

    def __str__(self):
        return "publisher_name:{}".format(self.name)

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=128,null=False)
    publisher = models.ForeignKey(to=Publisher)           #外键关联

    def __str__(self):
        return "book_title:{}".format(self.title)

class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=16,null=False)
    book = models.ManyToManyField(to="Book")            #跟BOOK多对多关系

    def __str__(self):
        return "author_name:{}".format(self.name)

以上是关于Django 之 ORM表之间的外键关联与多对多的主要内容,如果未能解决你的问题,请参考以下文章

多表查询

Jpa之关联对象(单向多对多)

Django orm关系表的创建 路由层以及视图层

Django 之多表查询 与多表的使用

Django框架之ORM的相关操作之多对多三种方式

多对多有额外的外键?