我有一些记录要根据计算值排序。在这里得到答案…就像这样:
sorted(Profile.objects.all(), key=lambda p: p.reputation)
在像这样的Profile类上:
class Profile(models.Model):
...
@property
def reputation(self):
...
不幸的是,通用视图期望有一个queryset对象,如果我给它一个列表,则会抛出一个错误。
有没有一种方法可以返回查询集
要么…
我可以以某种方式将列表转换为查询集吗?在django文档中找不到类似的内容。
我希望不要对数据进行非规范化,但是我想如果需要的话,我会的。
更新/回答:
看来,取回一个查询集的唯一方法是是否可以将所有逻辑都放入sql查询中。
如果不可能,(我认为)你需要对数据进行规范化
将数据列表转换回查询没有任何意义。查询对象从不保存数据。它仅表示对数据库的查询。如果将列表添加到查询中,它将不得不再次获取所有内容,这将是多余的并且在性能方面非常糟糕。
你可以做什么:
reputation
计算该字段;有可能以某种方式对数据库中的数据进行排序。问题内容: 我有以下内容: 然后再: 我收到一个错误: 我尝试了各种方法将QuerySet转换为标准集或列表。没用。 我如何从QuerySet中删除一个项目,以便它不会从数据库中删除它,并且不返回新的QuerySet(因为它处于循环状态,因此无法使用)? 问题答案: 你可以这样做: 在评估QuerySet时阅读,请注意,将整个结果加载到内存中(例如通过list())是不好的。 参考: 关于评论的更
问题内容: 如何将Django QuerySet转换为字典列表?我没有找到答案,所以我想知道我是否缺少每个人都使用的某种通用辅助函数。 问题答案: 使用方法: 注意:结果是,其行为基本上类似于列表,但实际上不是的实例。使用如果你真的需要的一个实例。
我目前正在使用平铺地图为pyplay中的一个游戏开发地图编辑器。关卡由以下结构中的块构建而成(尽管要大得多): 其中“1”是一块墙,“0”是一块空空气。 以下代码基本上是处理块类型更改的代码:
问题内容: 将a 转换为同时保持Queue顺序的最快方法是什么? 问题答案: 最快的方法是首先使用LinkedList,它可用作列表或队列。 否则您需要复印 注意:处理PriorityQueue时,请使用循环,轮询每个元素并添加到列表中。要列出的PriorityQueue不维护堆顺序。
问题内容: 我已经编写了此函数,用于将元组列表转换为列表列表。有没有更优雅的/ Pythonic的方式来做到这一点? 问题答案: 您可以使用列表推导:
问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你: