如何将Django查询保存在变量中以多次使用它?例如,用变量名称query1
定义保存查询,并在我想要的地方使用它。
query1 = objects.filter(name__startswith='a').filter(name__endswith='z')
q1 = Blog.objects.filter(query1)
q2 = Post.objects.filter(query1)
...
发布于 2021-07-18 08:07:15
你可以使用这样的东西:
from django.db import models
my_filter = models.Q(names__startswith='a') & models.Q(name__startswith='z')
Post.objects.filter(my_filter)
Blog.objects.filter(my_filter)
发布于 2021-07-18 07:03:23
是。使用Q对象:https://docs.djangoproject.com/en/3.2/topics/db/queries/#complex-lookups-with-q-objects
从医生那里:
a对象(django.db.models.Q)是一个用于封装关键字参数集合的对象。这些关键字参数在上面的“字段查找”中指定。
当我在电脑前时,我会添加一个例子。
发布于 2021-07-18 08:04:41
它可能将过滤器保存在字典中,并在以后使用,例如:
filters = {
"name__startswith":"a",
"name__endswith":"z",
}
q1 = Blog.objects.filter(**filters)
q2 = Post.objects.filter(**filters)
https://stackoverflow.com/questions/68429712
复制