手动创建第三张表,建立关联关系

            class Book(models.Model):
                # 默认会创建id
                name = models.CharField(max_length=32)
                # 中介模型,手动指定第三张中间表是Book2Author
                authors=models.ManyToManyField(to='Author',through='Book2Author',through_fields=
                                ('book','author'))
            class Author(models.Model):
                name = models.CharField(max_length=32)
                def __str__(self):
                    return self.name
            class Book2Author(models.Model):
                id = models.AutoField(primary_key=True)
                book=models.ForeignKey(to='Book',to_field='id')
                author=models.ForeignKey(to='Author',to_field='id')

-through:来指定我的第三张表是哪个

-through_fields:('book','author'),第一个值是:从中间表找到设置关联字段的表,通过哪个字段,第一个位置就写它

-终极总结:防止混了:关联字段就是表名小写,第一个值:就是当前表的表名小写
-查询,新增,删除,都很方便
-第三张表,可以添加别的字段

转载于:https://www.cnblogs.com/fxc-520520/p/9983955.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值