Как сделать транзакцию django для набора кода, включая запросы, а также локальные операции
permissionIds = [1,2...]
try:
with transaction.atomic():
RolePermissionMap.objects.bulk_create([
RolePermissionMap(role_id=role.id, permission_id=id) for id in permissionIds])
rolePermissionsMap[roleId] = permissionIds
# map should NOT update if the insert fails
return Response({"ok": 1}, status=200)
except: return Response({"ok": 0}
В моем коде, мне нужно создать несколько raws за раз, в случае если один из заданных идентификаторов разрешения не работает, он не должен делать следующий шаг, который сохраняет некоторые данные в dict. (это не транзакция db, поэтому он не может откатиться).
как я могу сделать это эффективно?