博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django手动建第三张关系表的增删改查
阅读量:5225 次
发布时间:2019-06-14

本文共 2132 字,大约阅读时间需要 7 分钟。

import osif __name__ == '__main__':    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day84.settings")    import django    django.setup()    # 手动创建第三张表的第一种方式(比较麻烦)    from app01 import models    # 给xxx这本书新增lqz和egon两个作者(增)    # models.Book2Author.objects.create(book_id=1,author_id=1)    # models.Book2Author.objects.create(book_id=1,author_id=2)    # 删 把两个作者都删除    # ret=models.Book2Author.objects.filter(book_id=1).delete()    # 查询xxx这本书所有的作者    # book=models.Book.objects.get(pk=1)    # # book.auhtors    # ret=models.Book2Author.objects.filter(book_id=book.pk)    # for i in ret:    #     print(i.author.name)    # 基于双下划线查询    # ret = models.Book.objects.filter(name='红楼梦').values('authors__name')    # print(ret)    # 既能用orm的关联查询,又能手动创建第三张表    # add,clear,remove,set:都用不了了    # 增,删,改:用表模型操作    # 用表模型    # 查询xxx这本书所有的作者    # book1 = models.Book1.objects.get(pk=1)    # authors=book1.authors.all()    # for author in authors:    #     print(author.name)    # 基于双下划线的查询    # ret=models.Book1.objects.filter(name='红楼梦').values('authors__name')    # print(ret)    # ret=models.Book2Author1.objects.create(book_id=1,author_id=2)    # 以后用:    #     -如果第三张表中没有其它字段,直接让它自动创建    #     -如果第三张表中有其它字段,手动创建第三张表,并且,用ManyToManyField做关联    # -用了ManyToManyField做了关联的作用是什么?(跟自动创建第三张表的所有的查询是一样的)    # add, clear, remove, set: 都用不了了    # 给红楼梦这本书添加egon作者    # book=models.Book1.objects.get(pk=1)    # egon=models.Author1.objects.get(pk=2)    # book.authors.add(egon)    # defer和only(高级阶段,提高查询效率)    # ret=models.Book1.objects.all().values('id','name')    # ret=models.Book1.objects.all().only('name')    # ret=models.Book1.objects.all()    # # 比如有10条数据---11句sql    # for book in ret:    #     # print(book.id)    #     print(book.name)    #     # 也有(不能这么写)    #     print(book.price)    ret = models.Book1.objects.all().defer('id','name','publish_id')    for book in ret:        print(book.price)        # print(book.publish)        # print(book.name)    # 总结    # only和defer 返回结果是queryset对象内包裹表模型的对象    # only,就是只查我指定的字段,一定会包含id   注意:没查的字段不要再用了    # defer,指定不取哪个字段,一定会包含id     注意:没查的字段不要再用了

 

转载于:https://www.cnblogs.com/zhouhai007/p/10279447.html

你可能感兴趣的文章
为什么分布式一定要有Redis?
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
HihoCoder 1328 BFS 搜索
查看>>
Day2-h和p标签
查看>>
[回归分析][7]--定性预测变量
查看>>
团队的绩效评估计划
查看>>
纯css实现警示框页面(带关闭窗口按钮)
查看>>
django的views里面的request对象详解大全
查看>>
oracle中anyData数据类型的使用实例
查看>>
C++对vector里面的元素排序及取任意重叠区间
查看>>
蓝桥杯题——包子凑数
查看>>
软件测试——性能测试总结
查看>>
PycharmV2017 1.x使用说明手册
查看>>
Spring基于注解的配置概述
查看>>
【hive】函数大全
查看>>
Linux/Windows远程桌面
查看>>
我对IoC/DI的理解
查看>>
Struts2数据传输的背后机制:ValueStack(值栈)
查看>>
SVN的基本操作
查看>>
信用卡、借记卡
查看>>