python 将参数传递给以字符分隔的函数
python pass arguments to function separated by character
对于 Django 中的 Q object,我希望能够解析 AND
、OR
查询。以下是要解析的查询示例:
from django.db.models import Q
Poll.objects.filter(
Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
)
这个查询是相同的:
a = Q(pub_date=date(2005, 5, 2))
b = Q(pub_date=date(2005, 5, 6))
Poll.objects.filter(
a | b
)
是否可以像下面这样解析查询?它显然会失败,因为 join
returns 与字符 |
连接的字符串。但这就是所需的 Django ORM 语法,我们希望能够动态地解析这些查询,而无需对 Q
参数进行硬编码。
a = Q(pub_date=date(2005, 5, 2))
b = Q(pub_date=date(2005, 5, 6))
Poll.objects.filter(
" | ".join([a,b])
)
您应该能够通过重复 or 运算符以编程方式编写:
q = Q()
for some_date in collection_of_dates:
q |= Q(pub_date=some_date)
Poll.objects.filter(q)
对于 Django 中的 Q object,我希望能够解析 AND
、OR
查询。以下是要解析的查询示例:
from django.db.models import Q
Poll.objects.filter(
Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
)
这个查询是相同的:
a = Q(pub_date=date(2005, 5, 2))
b = Q(pub_date=date(2005, 5, 6))
Poll.objects.filter(
a | b
)
是否可以像下面这样解析查询?它显然会失败,因为 join
returns 与字符 |
连接的字符串。但这就是所需的 Django ORM 语法,我们希望能够动态地解析这些查询,而无需对 Q
参数进行硬编码。
a = Q(pub_date=date(2005, 5, 2))
b = Q(pub_date=date(2005, 5, 6))
Poll.objects.filter(
" | ".join([a,b])
)
您应该能够通过重复 or 运算符以编程方式编写:
q = Q()
for some_date in collection_of_dates:
q |= Q(pub_date=some_date)
Poll.objects.filter(q)