Django-как получить вторую последнюю запись в queryset?

У меня есть модель имени employees_salary и мне нужно сделать вторая по величине зарплата работника.

У меня есть - Я могу фильтровать latest(), first (), last ()

Это работает, но как фильтр второй я что-то пропустил

пожалуйста, помогите

2 ответов


class Salaries(models.Model):

  employee_name = models.CharField(max_length=255)
  salary = models.IntegerField()


q = Salaries.objects.all().order_by('-salary)

second_highest_paid_name = q[1].employee_name

этот способ также будет работать

class EmployeeSalary(models.Model):    
    employee_name = models.CharField(max_length=255)
    salary = models.IntegerField()

#code for view
q = EmployeeSalary.objects.all().order_by('-salary')[1:1]
second_paid_name = q[0].employee_name
second_paid_salary = q[0].salary