zoukankan      html  css  js  c++  java
  • ORM知识点

    基于双下划线的查询就一句话:正向查询按字段,反向查询按表名小写用来告诉ORM引擎join哪张表,一对一、一对多、多对多都是一个写法,注意,我们写orm查询的时候,哪个表在前哪个表在后都没问题,因为走的是join连表操作。

    表的关系为多对多的时候    关联字段写在那个表里,就以那个表为基准,从这个表去查另一个表的数据为正向查询,否则为反向查询

    比如:

    class Book(models.Model):
    
        nid = models.AutoField(primary_key=True)
        title = models.CharField( max_length=32)
        publishDate=models.DateField()
        price=models.DecimalField(max_digits=5,decimal_places=2)
    
    
        publish=  models.ForeignKey(to="Publish",to_field="nid",on_delete=models.CASCADE) 
        
    
        authors=models.ManyToManyField(to='Author',) #注意不管是一对多还是多对多,写to这个参数的时候,最后后面的值是个字符串,不然你就需要将你要关联的那个表放到这个表的上面


    class Author(models.Model): #比较常用的信息放到这个表里面
        nid = models.AutoField(primary_key=True)
        name=models.CharField( max_length=32)
        age=models.IntegerField()

        # 与AuthorDetail建立一对一的关系,一对一的这个关系字段写在两个表的任意一个表里面都可以
        authorDetail=models.OneToOneField(to="AuthorDetail",to_field="nid",on_delete=models.CASCADE) #就是foreignkey+unique,只不过不需要我们自己来写参数了,并且orm会自动帮你给这个字段名字拼上一个_id,数据库中字段名称为authorDetail_id
  • 相关阅读:
    云计算 备忘录
    python 备忘录
    Linux 备忘录
    appium自动化的一个实例
    appium环境的搭建
    四则运算2单元测试
    四则运算2
    四则运算2程序设计思路
    上课未及时完成的原因
    随机生成30道四则运算题程序设计
  • 原文地址:https://www.cnblogs.com/xingkongzhizhu/p/11685643.html
Copyright © 2011-2022 走看看