Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中有效地对模型obj排序_Python_Django - Fatal编程技术网

Python 如何在django中有效地对模型obj排序

Python 如何在django中有效地对模型obj排序,python,django,Python,Django,我有一个名为“学生”的模型,它有一个字段“分数”,用于存储学生获得的总分。我很想知道一种方法,使我能够根据学生各自的分数对他们进行排名。这里我关心的是,是否有一种方法可以对学生进行排序,并在细节视图中输出每个学生的值。 在列表视图中,我使用了“order_by('-score')”属性,并使用{{{forloop.counter}}显示了它们的位置,列表视图工作得很好 class Student(models.Model): name = models.CharField(max_length=

我有一个名为“学生”的模型,它有一个字段“分数”,用于存储学生获得的总分。我很想知道一种方法,使我能够根据学生各自的分数对他们进行排名。这里我关心的是,是否有一种方法可以对学生进行排序,并在细节视图中输出每个学生的值。 在列表视图中,我使用了“order_by('-score')”属性,并使用{{{forloop.counter}}显示了它们的位置,列表视图工作得很好

class Student(models.Model):
name = models.CharField(max_length=200)
score = models.IntergerField()


def __str__ (self):
    return f"{ self.name} - { self.score }"
尝试:


有关订购人的更多信息:

什么是“排名”?如果两个学生的分数相同怎么办?如果他们的分数相同,我打算给他们分配相同的等级,跳过一个位置。这种方法在列表视图中非常有效,因为它将按desc/asc顺序排列项目。我无法使用它在详细视图中显示学生的位置您好,我使用list.index()方法解决了这个问题。我在模型中创建了粘贴在下面的函数,并使用{{object.ranking}@property def ranking(self,*args,**kwargs):marks=Student.objects.all().values_list('pk',flat=True)。order_by('-score')rank=list(marks)。index(self.pk)返回rank
Student.objects.order_by('score')