首页 > 其他 > 详细

Django 多对多表的三种创建方式

时间:2019-07-07 14:31:17      阅读:107      评论:0      收藏:0      [点我收藏+]

第一种:

class Book(models.Model):
    name = models.CharField(max_length=32)
    # 第一种自动创建
    authors = models.ManyToManyField(to=Author)
   

class Author(models.Model):
    name = models.CharField(max_length=32)

 

第二种:

class Book2(models.Model):
    name = models.CharField(max_length=32)


class Author2(models.Model):
    name = models.CharField(max_length=32)


# 手动创建第三张表
class Book2Author(models.Model):
    book = models.ForeignKey(to=Book2)
    author = models.ForeignKey(to=Author2)

 

    第二种方法好处是可以添加字段,缺点是ORM不可以使用了

第三种方式:

class Book3(models.Model):
    name = models.CharField(max_length=32)
    author = models.ManyToManyField(to=Author3,through=Book3Author,through_fields=(book,author))


class Author3(models.Model):
    name = models.CharField(max_length=32)


class Book3Author(models.Model):
    book = models.ForeignKey(to=Book3)
    author = models.ForeignKey(to=Author3)
    info = models.CharField(max_length=32)

     可扩展性高,并且能够支持orm 的查询

Django 多对多表的三种创建方式

原文:https://www.cnblogs.com/HUIWANG/p/11024060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!