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