Django - 从字符串构建模型过滤器

时间:2015-04-24 15:30:48

标签: python django database postgresql

是否可以使用字符串参数过滤模型?

考虑以下过滤器:

some_model.filter(parameter__gte = x)

我想使用字符串构建过滤器参数。

例如。

if equality == ">" and argument == x: query = "{0}__gte".format(parameter)

然后使用该构建的参数进行过滤。

some_model.filter(query = x)

在不使用原始sql的情况下是否可以采用这些方法?

1 个答案:

答案 0 :(得分:5)

是。使用字符串作为字典的键和值,然后使用filter运算符将该字典传递给**,以将它们用作关键字参数对。使用上面的例子:

filter_arguments = {query: x}
some_model.filter(**filter_arguments)