我想创建一个动态的Raw Queryset。
默认情况下,原始查询集如下所示:
qs = self.raw(
'SELECT DISTINCT ON(P.slug) P.id, P.slug, P.company_id, I.image,
'FROM product AS P ' ....
可以使用条件创建查询集。我不是指像Where
这样的数据库条件,而是指像if
类似的东西:
'SELECT DISTINCT ON(P.slug) P.id, P.slug, P.company_id, I.image,
'FROM product AS P ' # if var_a Limit 20 else where P.id = var_b
答案 0 :(得分:1)
只需使用简单的python if / else:
query = 'SELECT DISTINCT ON(P.slug) P.id, P.slug, P.company_id, I.image FROM product AS P '
params = []
if var_a:
query += 'LIMIT 20'
else:
query += 'WHERE P.id = %s'
params.append(var_b)
qs = self.raw(query, params)