Как сделать endpoint транзакции в Django

Python Junior Без компании
Как сделать endpoint транзакции в Django
Ответы
Для создания транзакционного endpoint в Django нужно использовать декоратор `@transaction.atomic` и Django REST Framework. Вот пример: ``` 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`.