擅长:python、mysql、java
<p>如果定期使用不同属性进行此类查询,请为此类操作创建通用函数</p>
<pre><code>def generate_property_in_list_query(property_name, list_items):
query = None
for item in list_items:
filter_query = Q(**{"{}__icontains".format(property_name): item})
query = filter_query if not query else query | filter_query
return query
</code></pre>
<p>现在,您可以为<strong>name</strong>like创建查询</p>
<pre><code>generate_property_in_list_query("name", ["joe", "klare"])
</code></pre>
<p>模型过滤器操作将是</p>
<pre><code>Model.objects.filter(generate_property_in_list_query("name", ["joe", "klare"]))
</code></pre>
<p>如果我们想搜索其他属性,只需更改属性名称</p>