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'