Jia*_*aro 54 python sorting django list django-queryset
我有一些记录,我想根据计算值排序.得到的答案在这里 ......像这样:
sorted(Profile.objects.all(), key=lambda p: p.reputation)
Run Code Online (Sandbox Code Playgroud)
在这样的Profile类上:
class Profile(models.Model):
...
@property
def reputation(self):
...
Run Code Online (Sandbox Code Playgroud)
不幸的是,通用视图需要一个queryset对象,如果我给它一个列表就会抛出错误.
有没有办法做到这一点返回一个查询集
要么...
我可以以某种方式将列表转换为查询集吗?在django docs中找不到类似的东西.
我希望不要对数据进行非规范化,但我想我会这样做.
似乎获取查询集的唯一方法是,如果您可以将所有逻辑都放入sql查询中.
如果那是不可能的,(我认为)你需要对数据进行非规范化
neo*_*ser 92
好的...这篇文章现在已经很老了但是你能做的就是获取ids列表中的所有对象,然后执行一个model.objects.filter(pk__in=list_of_ids)
Bli*_*ixt 21
将数据列表转换回查询没有意义.查询对象永远不会保存数据; 它只代表对数据库的查询.如果你将列表写入查询,它将不得不再次获取所有内容,这将是多余的,并且性能非常糟糕.
你可以做什么:
reputation字段的计算方式; 它可能以某种方式在数据库中订购数据.| 归档时间: |
|
| 查看次数: |
50998 次 |
| 最近记录: |