我想找出这两种策略中的哪一种是大多数 django 开发人员的首选。
我有一个模型,有一个字段我想通过称为“热度”来订购这些模型。热度是根据该模型中已有的字段计算的。
所以这两条路径是:
1) Have a field called "hotness" which the models
can be easily ordered by.
2) Have a method called "get_hotness()", which
returns the hotness of the instance.
但是两者都有优点和缺点。
如果使用选项一,额外的字段将导致额外的内存消耗,因为模型本身会更重。
对于选项二,实际上没有办法通过 django 中的模型方法过滤查询集,因此我们可能不得不对列表进行操作:
models = sorted(list(Model.objects.all()), key = lamba x: x.get_hotness())
但是再次使用列表操作会增加内存消耗,而不仅仅是查询。
因此,如果那里的任何人都可以帮助解决此类问题的首选路线,那么建议会很棒!谢谢你。