标签:事务 update nbsp 增加 操作 关系 classes 姓名 closed
1. ORM 外键关联查询和多对多关系正反向查询
Class Classes(): name = CF class Student(): name = CF class = FK(to="Classes") class Teacher(): name = CF classes = M2M(to="Classes",related_name="teacher")
# Fk 正向查找 obj = models.Student.objects.first() print(obj.class_id) # FK 反向查找 obj = models.Classes.objects.first() print(obj.student_set.all()) # M2M 正向查找 obj = models.Teacher.objects.get(pk=1) print(obj.classes.all()) # M2M 反向查找 obj = models.Classe.objects.get(pk=1) print(obj.teacher.all())
2. F查询和Q查询
F查询可以对当前查询出来的对象取值,就是像自赋值 a = a+20,更新字段方便
from django.db.models import F from app01.models import Book Book.objects.update(price=F("price")+20) # 对于book表中每本书的价格都在原价格的基础上增加20元
Q查询可以对当前查询的表进行多次筛选,可以组合使用&, | ,比如查询2005年初生且姓是W开头的, 2005年初始或姓名是W揩油的
from django.db.models import Q obj = student.objects.filter(Q(Bd_year=2005) & Q(name_startswith="W")) obj = student.objects.filter(Q(Bd_year=2005) | Q(name_startswith="W"))
3. ORM事务操作
from app01 import models try: from django.db import transaction with transaction.atomic(): (进行事务操作) except Exception as e: pass
标签:事务 update nbsp 增加 操作 关系 classes 姓名 closed
原文地址:https://www.cnblogs.com/erhao9767/p/10150624.html