Django queryset : У меня есть модель Employee со следующими полями

Class Employee(models.Model):
     name = models.CharField(max_length=100)
     age = models.CharField(max_length=100)
     salary = models.CharField(max_length=100)

Мне нужно написать набор запросов для получения всех деталей с дополнительным полем под названием Group. Таким образом, Group будет устанавливать "A", если зарплата больше 10000, иначе "B".

Кажется, это работа для Case/When https://docs.djangoproject.com/en/4.0/ref/models/conditional-expressions/#case

Попробуйте что-нибудь вроде:

Employee.objects.annotate(
    group=Case(
        When(salary__gte=10000, then=Value('A')),
        default=Value('B'),
    ),

Вы можете сделать это в классе модели как свойство:

@property
def group(self):
    if self.salary > 10000:
        return 'A'
    else:
        return 'B'
Вернуться на верх