我想使用两个过滤器来过滤我的模型对象。因此,它可以只有一个筛选器,或者两个都是,或者都不是。我的解决方案是使用大量的“if”:
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()有人能建议一种更简单的过滤方法吗?
发布于 2012-06-20 18:48:57
查询集过滤器是累积性的。
queryset = Article.objects.all()
if _topic:
queryset = queryset.filter(topic=_topic)
if _curator:
queryset = queryset.filter(curator=_curator)发布于 2012-06-20 18:53:51
kwargs = {}
if _topic:
kwargs[topic] = _topic
if _curator:
kwargs[curator] = _curator
queryset = Article.objects.filter(**kwargs)https://stackoverflow.com/questions/11117890
复制相似问题