我有一个应用程序,用户应该能够在其中构建复杂的搜索查询。问题是,当我使用Q
对象构建查询时,我找不到使参数动态的方法。
Users.objects.filter(age__gte=18)
给定上面的查询,我希望使age
和gte
是动态的。我从HTML表单中获得了str
格式的它们,但如何将它们转换为真正的参数呢?我想要一些类似的东西:
Users.objects.filter('{}__{}=18'.format(field, operator))
您忘记了python可以将参数的list
*args
和dict
**kwargs
作为参数。因此,对于您的案例:
Users.objects.filter(**{'{}__{}'.format(field, operator): 18})