• ORM之一对多外键的CRUD


    外键的CRUD

    一对多外键字段的crud

    增 

    传实际字段

    models.Book.objects.create(title="三国",price=123,publish_id=1)

    第二种放虚拟字段

    pub_obj = models.Publish.objects.filter(pk=2).first()

    models.Book.objects.create(title="三国",price=123,publish=pub_obj)

    models.Publish.objects.filter(pk=1).delete() 级联删除,出版社这条删除了,那么关联的书籍中有出版社的记录也会删除

    models.Book.objects.filter(pk=1).update(publish_id=2)   同样可以传虚拟字段一个publish对象

    多对多外键字段的crud

    本质:在操作第三张关系表

    无法通过models.表名 摸到第三张表

    book_obj = models.Book.objects.filter(pk=1).first()  拿到虚拟字段就相当于于到了第三张表。

    book_obj.authors.add(1)  为书籍id为1的书籍绑定一个主键为1的作者。

    多对多,那么一次可以添加多条, book_obj.authors.add(2,3)

    同样支持放对象,查几个Author对象,然后add(author对象)

    book_obj.authors.remove(author_obj1,author_obj2)

    改 

    book_obj.authros.set([1,2])  set()里面必须可迭代  1   1  , 1   2

    book_obj.authros.set([3]) 回将原来所有的关系删掉,新建 1  3对应关系

    同样也可以放对象。

    清空

    一本书永久下架了,清空这个书和作者的关系

    book_obj.authors.clear()

    看十遍不如自己写一遍!巩固基础,纵横开拓!
  • 相关阅读:
    顺时针打印二维矩阵
    hbase的rowKey设计原则
    关于这段时间学习 EntityFramework的 一点感悟
    一次排序序号的补充
    我的第一段jQuery代码
    非常郁闷的 .NET中程序集的动态加载
    关于EF6的记录Sql语句 与 EntityFramework.Extend 的诟病
    排序更改
    ZhyjEye 简介
    js数组去重的4个方法
  • 原文地址:https://www.cnblogs.com/gyxpy/p/14711318.html
Copyright © 2020-2023  润新知