【发布时间】:2017-02-10 13:34:43
【问题描述】:
Django 1.10.1
在一个页面上我准备了很多控件。其中一些被组织为动态变化的表单集。所以,我什至不知道他们中有多少人在场。
我需要一个带有 AND、OR 和 NOT 逻辑运算的链式过滤器。
例如,我需要这样的东西:
Entry.objects.filter(headline__startswith='What').exclude(pub_date__gte=datetime.date.today()).filter(pub_date__gte=datetime(2005, 1, 30)).filter(Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
过滤器的数量再次发生变化。
我正计划这样做:遍历 request.POST 并根据十几个条件准备一个字符串。相同的字符串:
"Entry.objects.filter(headline__startswith='What').exclude(pub_date__gte=datetime.date.today()).filter(pub_date__gte=datetime(2005, 1, 30)).filter(Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))"
所以,字符串是正确的。但我不能让它与 exec() 一起工作。 我在这里问:为什么它不起作用。答案是:不行,直接运行Python代码。
我可以构建类似的东西:
entries = Entry.objects.filter( **kwargs )
但这只是一个过滤器。我无法想象如何链接这样的过滤器。
你能帮我吗&
【问题讨论】:
-
我想知道您的
POST请求是什么样的。
标签: django django-orm