django 多对多 关系操作物理外键

27 篇文章 0 订阅
27 篇文章 0 订阅
# 迁移模型之后 ,数据库会多出一个表   应用名_表明_外键   #例如: home_users_uid

# 书籍
class Books(models.Model):
    title = models.CharField(max_length=50)
    author = models.CharField(max_length=50)

# 标签
class Tags(models.Model):
    name = models.CharField(max_length=10)
    # 多对多关系定义
    bid = models.ManyToManyField(to="Books")

    def __str__(self):
        return '<Tags: '+self.name+' object>'



# 多对多的操作
def manymomany(request):

    # 添加

        # # 创建书籍
        # b1 = Books(title='<<Python3.7从零开始学>>',author='刘宇宙')
        # b2 = Books(title='<<学PHP>>',author='哒哒哒')
        # b1.save()
        # b2.save()

        # # 创建标签
        # t1 = Tags(name='Python')
        # t2 = Tags(name='计算机编程')
        # t3 = Tags(name='PHP')

        # t1.save()
        # t2.save()
        # t3.save()

        # # 给书籍添加标签
        # t1.bid.add(b1)
        # t2.bid.add(b1)
        # t2.bid.add(b2)
        # t3.bid.add(b2)

    # 查询

        # 通过书 获取当前书下的所有标签
        # b = Books.objects.first()
        # print(b.title)
        # print(b.author)
        # print(b.tags_set.all())


        # 通过标签.获取当前标签下的所有书
        # t = Tags.objects.get(id=2)
        # print(t.name)
        # # 注意,在使用有外键的模型进行相关查询时,使用外键属性即可
        # print(t.bid.all())

    # 如果删除关系中的任何一个数据,对另外一个表数据不产生影响,但是会删除对应的关系数据
        # b = Books.objects.first()
        # b.delete()


    return HttpResponse('多对多的操作')


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值