将方法作为ValuesQuerySet的字段调用

时间:2015-05-04 10:26:36

标签: django django-models django-views

我有一个模型和方法如下:

class Results(models.Model):
    t_id = models.TextField(blank=True)
    s_result_id = models.TextField(blank=True,primary_key=True)
    s_name = models.TextField(blank=True)
    s_score = models.FloatField(blank=True, null=True)
    ... (some other fields with huge data)
    def get_s_score(self):
        return 100 * self.s_score

在视图上,我试图从内部值调用get_s_score方法。我必须使用值来避免选择具有大量数据的其他字段。

    def all_recentsiteresults(request,t_id1):
Result = Results.objects.filter(t_id=t_id1).values('s_result_uid','s_name',get_s_score())

1 个答案:

答案 0 :(得分:2)

您无法在values()方法中使用模型的方法。但您可以使用only()方法来减少内存使用量:

Results.objects.only('s_result_id', 's_name', 's_score').filter(t_id=t_id1)