django2外键,F表达式,Q表达式】的更多相关文章

一对多 环境 两个类:书的类别和文章,一片文章只能有一个作者,一个作者可以有多个文章,这之间组成了一对多的关系 class Category(models.Model): category = models.CharField(max_length=100) def __str__(self): return self.category class Article(models.Model): title = models.CharField(max_length=20,verbose_name…
# 出版社 class Publisher(models.Model): # 自增.主键 id id = models.AutoField(primary_key=True) # varchar(32).不为空.唯一索引 name = models.CharField(max_length=32, null=False, unique=True) # 书 class Booker(models.Model): id = models.AutoField(primary_key=True) tit…
字段的修改.添加和删除 create table tf1( id int primary key auto_increment, x int, y int ); #修改 alter table tf1 modify x char(4) default''; alter table tf1 change y m char(4) default ''; #增加 alter table 表名 add 字段名 类型[(长度) 约束]; >:alter table student add name cha…
聚合函数 取名: field + __ + 聚合函数名字 ,如:price__avg:可传关键字参数修改名字:avg=Avg("price"): aggregate:不会返回一个 QuerySet 对象,而是返回一个字典,key为聚合函数的名字,value为聚合函数执行结果: annotate:返回一个 QuerySet 对象: 相同点: 都可执行聚合函数:可在任何的‘QuerySet’对象上调用,因此只要返回了‘QuerySet’对象,即可进行链式调用,如 index5 中获取年度销…
必知必会13条 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <3> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊的Q…
Django---Django的ORM的一对多操作(外键操作),ORM的多对多操作(关系管理对象),ORM的分组聚合,ORM的F字段查询和Q字段条件查询,Django的事务操作,额外(Django的终端打印SQL语句,脚本调试) 一丶Django的ORM外键操作 通过对象查找 ### 正向查找 # 获得图书对象 book_obj=models.Book.objects.get(pk=1) ret=book_obj.pub #pub是Book表的外键字段,存在Book表中. 通过pub可以拿到所关…
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 举例说明: user=models.OneToOneField(User) owner=models.ForeignKey(UserProfile) 需要改成: user=models.OneToOneField(Us…
Q表达式可以包裹查询条件,可以在多个条件之间进行操作:与或非等.Q表达式一般会放在filter()中进行使用,F表达式一般是放在update()中进行使用. 定义模型的models.py文件中,示例代码如下: from django.db import models # 定义作者模型 class Author(models.Model): name = models.CharField(max_length=100, unique=True) age = models.IntegerField(…
1.Django2.0之后使用外键时遇到 __init__() missing 1 required positional argument: 'on_delete' 需要在外键创建时给on_delete参数赋值.models.CASCADE是老版本的默认值. publish = models.ForeignKey("Publish", on_delete=models.CASCADE)…
Django2.0里model外键和一对一的on_delete参数 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 举例说明: user=models.OneToOneField(User) owner=models.ForeignKey(UserProfile)…