Встречается на собеседованиях • сегодня
Как сделать endpoint транзакции в Django
Для создания транзакционного endpoint в Django нужно использовать декоратор @transaction.atomic и Django REST Framework. Вот пример:
python
from django.db import transaction
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
@api_view(['POST'])
@transaction.atomic
def create_transaction(request):
try:
# Бизнес-логика внутри транзакции
perform_operation1()
perform_operation2()
return Response({'status': 'success'}, status=status.HTTP_201_CREATED)
except Exception as e:
# Транзакция автоматически откатится при исключении
return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST)Ключевые моменты:
@transaction.atomicгарантирует атомарность операций- При любом исключении произойдет автоматический откат
- Для API лучше использовать DRF декораторы
- Все операции БД внутри блока будут частью одной транзакции
Для класс-базированных вьюшек можно использовать @method_decorator(transaction.atomic) или наследовать от TransactionTestCase.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы