2017-03-02 23 views
0

我想知道Django模型对象在满足相同标准的对象内的排名是什么。评价一个Django查询:在Django查询中使用python的.index()[values_list(Flat = True)]

我的想法是让主键的这样一个扁平values_list:

[在models.py页面,在模型“风险”,其他链接的模型Worktask和类型]

my_list_of_filtered_pks = Risk.objects.filter(
     worktask__code = self.worktask.code, 
     type__id = self.type.id 
    ).values_list('pk', flat=True).order_by('pk') 

,然后使用类似让我的特定情况下的指标:

rank = my_list_of_filtered_pks.index(self.pk) 

,但我得到一个错误,说我my_list_of_filtered_pks有没有属性“索引”

'QuerySet' object has no attribute 'index' 

我在这里错过了什么?

谢谢!我对django比较陌生。

回答

1

查询集尚未评估。试试这个:

rank = list(my_list_of_filtered_pks).index(self.pk) 

Docs

+0

明白了!有用。 我还没有意识到,当我以前调用count()(以确保查询工作)时,它实际上只是在评估它。 谢谢!您如何编辑标题以使问题对其他人更容易理解? – Malcoolm