如何在Django中创建虚拟过滤器查询(始终匹配的过滤器)和从未匹配的排除查询。原因是因为在某些情况下查询为“无”,在这种情况下我想使用虚拟过滤器。这是代码:

MyModel.objects.filter(filterQuery).exclude(excludeQuery)


filterQueryexcludeQueryNone的情况下,会出现错误,因此我想在该查询之前添加以下条件:

if filterQuery == None: filterQuery = ???
if excludeQuery == None: excludeQuery = ???
MyModel.objects.filter(filterQuery).exclude(excludeQuery)

最佳答案

仅在需要时才执行过滤/排除操作,而不要使用空语句:

found = MyModel.objects.all()
if filterQuery:
    found = found.filter(filterQuery)
if excludeQuery:
    found = found.exclude(excludeQuery)

08-27 08:19