当前位置: 首页>>代码示例>>Python>>正文


Python transaction.set_rollback方法代码示例

本文整理汇总了Python中django.db.transaction.set_rollback方法的典型用法代码示例。如果您正苦于以下问题:Python transaction.set_rollback方法的具体用法?Python transaction.set_rollback怎么用?Python transaction.set_rollback使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在django.db.transaction的用法示例。


在下文中一共展示了transaction.set_rollback方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _rollback_atomics

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def _rollback_atomics(cls, atomics):
        """Rollback atomic blocks opened through the previous method"""
        for db_name in reversed(cls._databases_names()):
            transaction.set_rollback(True, using=db_name)
            atomics[db_name].__exit__(None, None, None) 
开发者ID:lanbing510,项目名称:GTDWeb,代码行数:7,代码来源:testcases.py

示例2: _rollback_atomics

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def _rollback_atomics(cls, atomics):
        """Rollback atomic blocks opened by the previous method."""
        for db_name in reversed(cls._databases_names()):
            transaction.set_rollback(True, using=db_name)
            atomics[db_name].__exit__(None, None, None) 
开发者ID:reBiocoder,项目名称:bioforum,代码行数:7,代码来源:testcases.py

示例3: test_first_access_with_rollback

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def test_first_access_with_rollback(self):

        def one(output):
            output.append(('one', 'begin'))
            with transaction.atomic():
                value = get_next_value()
                output.append(('one', value))
                time.sleep(0.2)
                transaction.set_rollback(True)
                output.append(('one', 'rollback'))
            connection.close()

        def two(output):
            time.sleep(0.1)
            output.append(('two', 'begin'))
            with transaction.atomic():
                value = get_next_value()
                output.append(('two', value))
                output.append(('two', 'commit'))
            connection.close()

        expected = [
            ('one', 'begin'),
            ('one', 1),
            ('two', 'begin'),
            ('one', 'rollback'),
            ('two', 1),
            ('two', 'commit'),
        ]

        self.assertSequence(one, two, expected) 
开发者ID:aaugustin,项目名称:django-sequences,代码行数:33,代码来源:test_sequences.py

示例4: test_later_access_with_rollback

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def test_later_access_with_rollback(self):

        get_next_value()

        def one(output):
            output.append(('one', 'begin'))
            with transaction.atomic():
                value = get_next_value()
                output.append(('one', value))
                time.sleep(0.2)
                transaction.set_rollback(True)
                output.append(('one', 'rollback'))
            connection.close()

        def two(output):
            time.sleep(0.1)
            output.append(('two', 'begin'))
            with transaction.atomic():
                value = get_next_value()
                output.append(('two', value))
                output.append(('two', 'commit'))
            connection.close()

        expected = [
            ('one', 'begin'),
            ('one', 2),
            ('two', 'begin'),
            ('one', 'rollback'),
            ('two', 2),
            ('two', 'commit'),
        ]

        self.assertSequence(one, two, expected) 
开发者ID:aaugustin,项目名称:django-sequences,代码行数:35,代码来源:test_sequences.py

示例5: set_rollback

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def set_rollback():
    atomic_requests = connection.settings_dict.get('ATOMIC_REQUESTS', False)
    if atomic_requests and connection.in_atomic_block:
        transaction.set_rollback(True) 
开发者ID:BeanWei,项目名称:Dailyfresh-B2C,代码行数:6,代码来源:views.py

示例6: exception_handler

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def exception_handler(exc, context):
    """
    Returns the response that should be used for any given exception.
    By default we handle the REST framework `APIException`, and also
    Django's built-in `Http404` and `PermissionDenied` exceptions.
    Any unhandled exceptions may return `None`, which will cause a 500 error
    to be raised.
    """
    if isinstance(exc, Http404):
        exc = exceptions.NotFound()
    elif isinstance(exc, PermissionDenied):
        exc = exceptions.PermissionDenied()

    if isinstance(exc, exceptions.APIException):
        headers = {}
        if getattr(exc, 'auth_header', None):
            headers['WWW-Authenticate'] = exc.auth_header
        if getattr(exc, 'wait', None):
            headers['Retry-After'] = '%d' % exc.wait

        if isinstance(exc.detail, (list, dict)):
            data = exc.detail
        else:
            data = {'detail': exc.detail}

        set_rollback()
        return Response(data, status=exc.status_code, headers=headers)

    return None 
开发者ID:BeanWei,项目名称:Dailyfresh-B2C,代码行数:31,代码来源:views.py

示例7: test_ticket_11101

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def test_ticket_11101(self):
        """Fixtures can be rolled back (ticket #11101)."""
        with transaction.atomic():
            management.call_command(
                'loaddata',
                'thingy.json',
                verbosity=0,
            )
            self.assertEqual(Thingy.objects.count(), 1)
            transaction.set_rollback(True)
        self.assertEqual(Thingy.objects.count(), 0) 
开发者ID:nesdis,项目名称:djongo,代码行数:13,代码来源:tests.py

示例8: set_rollback

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def set_rollback():
    if hasattr(transaction, 'set_rollback'):
        if connection.settings_dict.get('ATOMIC_REQUESTS', False):
            # If running in >=1.6 then mark a rollback as required,
            # and allow it to be handled by Django.
            if connection.in_atomic_block:
                transaction.set_rollback(True)
    elif transaction.is_managed():
        # Otherwise handle it explicitly if in managed mode.
        if transaction.is_dirty():
            transaction.rollback()
        transaction.leave_transaction_management()
    else:
        # transaction not managed
        pass 
开发者ID:erigones,项目名称:esdc-ce,代码行数:17,代码来源:compat.py

示例9: process_view

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import set_rollback [as 别名]
def process_view(self, request, view_func, view_args, view_kwargs):
        user = None
        if request.user.is_authenticated:
            user = request.user

        if request.method == "GET":
            logger.debug("Start query request on the view %s." % view_func.__name__)
            # NOTE: We do not need create a changeset when we just SELECT somw records.
            response = view_func(request, *view_args, **view_kwargs)
        else:
            # trap the request and give response when the method is not defined in HTTP/1.1
            if request.method not in ["HEAD", "POST", "PUT", "DELETE", "TRACE", "CONNECT", "PATCH", "OPTIONS"]:
                logger.error('Wrong method %s specified when calling %s', request.method.decode("utf-8"), request.path)
                response_data = json.dumps({"detail": 'Method "{method}" not allowed.'.format(method=request.method)},
                                           ensure_ascii=False)
                response = HttpResponse(response_data, content_type='application/json')
                response.status_code = status.HTTP_405_METHOD_NOT_ALLOWED
                return response

            logger.debug("Start write request on the view %s." % view_func.__name__)
            try:
                with transaction.atomic():
                    comment = request.META.get("HTTP_PDC_CHANGE_COMMENT", None)
                    request.changeset = models.Changeset(author=user, comment=comment)
                    request.changeset.requested_on = timezone.now()
                    response = view_func(request, *view_args, **view_kwargs)
                    # response.exception=True means there is an error occurs.
                    if getattr(response, 'exception', 0) or (
                        hasattr(response, 'status_code') and response.status_code >= 400
                    ):
                        # avoid recording changeset on server error, also
                        # abort the transaction so that no modifications are
                        # done to database
                        request.changeset.reset()
                        transaction.set_rollback(True)
                    else:
                        request.changeset.commit()
                        self._may_announce_big_change(request.changeset, request)
            except Exception:
                # NOTE: catch all errors that were raised by view.
                # And log the trace back to the file.
                logger.error('View Function Error: %s', request.path,
                             exc_info=sys.exc_info())
                # we do not want to break the default exception processing chains,
                # so re-raise the exception to the upper level.
                raise

        return response 
开发者ID:product-definition-center,项目名称:product-definition-center,代码行数:50,代码来源:middleware.py


注:本文中的django.db.transaction.set_rollback方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。