2016-08-04 89 views
0

从Django Admin中查看模型条目时,可以指定过滤器。我怎样才能模仿这种行为?不熟悉kwargs,但类似这样的东西:将kwargs传递给Django Filter

foo = Model.objects.filter(**__exact='**') 

其中第一组的**将在模型中的场和第二组将是一个条目。基本上根据用户在前端选择的内容来制作查询变量。我将如何将该变量排序选项发送到视图,然后将其返回到网页。怎样使用字典?请帮忙

SO question已被证明是有一点帮助,但仍然不能完全掌握它。

回答

1

可以使用**

your_filters = { 
'field_1__exact': value_1, 
'field_2__gte': value_2, 
} 

Model.objects.filter(**your_filters) 

说,你可以动态地构建基于用户输入您的查询过滤器(Python字典),解压Python字典作为过滤器参数。

+0

感谢您的回复。 2个问题:'**'适用于'your_filters'变量让Django知道这可以改变?如果是这样,那不是变量已经做了什么,它会变化吗?问题2:假设我在前端放置了“占位符”,我怎么才能将用户的选择转换回视图。也许是AJAX调用? – Kervvv

+0

@Kervvv关于你的问题2:是的,你可以使用ajax传递它并从request.POST或request.GET数据中读取它们,具体取决于你想要什么。我不明白第一个问题。 – levi