モデルにカスタムプロパティがあり、そのプロパティを使用してorder_byを実行したいと思います。
class Report(models.Model):
title = models.CharField(max_length = 255)
pub_date = models.DateTimeField('date published', blank=True, null=True)
status = models.CharField(max_length = 2, choices=REPORT_STATUS)
@property
def risk_rating(self):
# Calculate risk rating here
return risk_rating
やりたい
reports = Report.objects.all().order_by('-risk_rating')
ただし、もちろん、存在しない列に関してmysqlエラーが返されます。Pythonを使用した並べ替えアルゴリズムでこのプロパティを呼び出すことを繰り返したくないのですが、これが機能する唯一の方法だと思います。
reports = sorted(Report.objects.all(), key=lambda t: t.risk_rating)
私はおそらくそれよりもうまくやれるでしょうか?