首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模型乘法滤波器

Django模型乘法滤波器
EN

Stack Overflow用户
提问于 2012-06-20 18:45:17
回答 2查看 199关注 0票数 0

我想使用两个过滤器来过滤我的模型对象。因此,它可以只有一个筛选器,或者两个都是,或者都不是。我的解决方案是使用大量的“if”:

代码语言:javascript
复制
if _topic or _curator:
    if _topic and _curator:
        queryset = Article.objects.filter(topic=_topic,curator=_curator)
    elif _curator:
        queryset = Article.objects.filter(curator=_curator)
    else # so topic is the last choice
        queryset = Article.objects.filter(topic=_topic)
else
    queryset = Article.objects.all()

有人能建议一种更简单的过滤方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-20 18:48:57

查询集过滤器是累积性的。

代码语言:javascript
复制
queryset = Article.objects.all()
if _topic:
    queryset = queryset.filter(topic=_topic)
if _curator:
    queryset = queryset.filter(curator=_curator)
票数 1
EN

Stack Overflow用户

发布于 2012-06-20 18:53:51

代码语言:javascript
复制
kwargs = {}
if _topic:
    kwargs[topic] = _topic
if _curator:
    kwargs[curator] = _curator
queryset = Article.objects.filter(**kwargs)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11117890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档