动态对象fi

2024-04-25 18:03:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个过滤器查询,根据搜索条件不同

有时是:

Thing.object.filter(name__startswith=word).distinct('id')

有时:

Thing.object.filter(city__startswith=word)

所以.filter(之后的一切都可以改变。有没有办法动态设置?你知道吗


Tags: nameid过滤器cityobject动态filter条件
2条回答

.filter()的参数,是的。只要编一本字典。你知道吗

D = {'city__startswith': word}
things = Thing.object.filter(**D)

.distinct()的调用,不需要。您需要使用特殊情况。你知道吗

如果“city”和“name”是条件选择器的值,则可以执行以下操作:

queryset = Thing.object.filter(**{'%s__startswith' % criteria: word})

if criteria_requires_distinct:
    queryset = queryset.distinct()

相关问题 更多 >