Django F表达式应用场景

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33867131/article/details/82734602
1、场景一:将公司所有员工的薪水都增加1000元
(1)一般方法:提取所有员工工资,用循环将每一个工资加上1000,保存到数据库里
employees = Employee.objects.all()
for employee in employees:
    employee.salary += 1000
    employee.save()
(2)用 F表达式,不需要先把数据提取出来,直接update就行了
from djang.db.models import F
Employee.object.update(salary=F("salary")+1000)


2、场景二:获取 name 和 email相同的作者数据
(1)一般方法:提取所有作者的数据,用for...in循环,判断每一个作者的name 和email,相同的取出来
authors = Author.objects.all()
  for author in authors:
      if author.name == author.email:
          print(author)
(2)用 F表达式,直接查找
from django.db.models import F
authors = Author.objects.filter(name=F("email"))

猜你喜欢

转载自blog.csdn.net/qq_33867131/article/details/82734602