我需要一种有效的方法来搜索我的模型以找到特定的用户,这是一个列表,
用户 - 用户列表,姓名等。
活动 - 所有用户的活动表,当他们不可用时
技能 - 与用户的多对多关系,用户可以拥有很多技能
合同 - 与用户多对一,用户可以处理多个合同,每个合同都有一个评级(如果已完成)
......等。
所以我有很多表链接到User表。我需要搜索一组符合某些标准的用户;例如,他从下周四到周五可以使用,具有x / y / z技能,并且在所有已完成的合同中获得了平均4分。
有没有办法有效地进行搜索,同时最小化我点击数据库的次数?对不起,如果这是一个非常新的问题。
谢谢!
答案 0 :(得分:1)
不确定这种方法是否能解决所有4种情况的问题,但至少它可以帮助你解决第一种情况 - 有效地查询用户数据。
我通常会更快地使用values
或values_list
查询功能,因为它会缩小实际SQL的SELECT
部分,因此您可以更快地获得结果。关于此事Django docs。
另外值得一提的是,从values
和values_list
中的新开发版开始,您可以查询任何类型的关系,包括many_to_one。
最后你可能会发现in_bulk
也很有用。如果我执行复杂查询,您可能会尝试使用values
或values_list
首先查询某些模型的ID,然后使用in_bulk
更快地获取模型实例。 Django docs关于那个问题。