Middle
Агар бояд ҳисоб кардани арзишҳо мустақиман дар SQL бо шарти муайян (масалан, тахфиф вобаста ба категорияи муштарӣ бошад), чӣ гуна инро дар Django ORM анҷом медиҳӣ, то ҳама чизро дар Python бор накунӣ?
sobes.tech AI
Ҷавоб аз AI
В Django ORM для вычислений с условием прямо в SQL можно использовать выражения Case и When из модуля django.db.models.
Например, если скидка зависит от категории клиента, можно сделать так:
from django.db.models import Case, When, Value, IntegerField, F
# Предположим, у модели Order есть поле client__category
orders = Order.objects.annotate(
discount=Case(
When(client__category='VIP', then=Value(20)), # скидка 20%
When(client__category='Regular', then=Value(10)), # скидка 10%
default=Value(0),
output_field=IntegerField()
)
)
for order in orders:
print(order.id, order.discount)
Такое выражение будет преобразовано в SQL с условным оператором CASE, и вычисления выполнятся на стороне базы, без выгрузки всех данных в Python.