This is forbidden when an 'atomic' block is active.

Issue #50 resolved
Mirza Delic created an issue

I get this error when add message from admin:

This is forbidden when an 'atomic' block is active.

Any solution? Thanks

Comments (14)

  1. Mirza Delic reporter

    When i comment that line, it works.. Would you fix it or i need to use my fork?

    Environment:
    
    
    Request Method: POST
    Request URL: http://localhost:8000/ad/8/send-message/
    
    Django Version: 1.6.5
    Python Version: 2.7.5
    Installed Applications:
    ('django.contrib.auth',
     'django.contrib.sessions',
     'django.contrib.sites',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'polymorphic',
     'django.contrib.contenttypes',
     'social.apps.django_app.default',
     'suit',
     'django.contrib.admin',
     'sekizai',
     'tastypie',
     'widget_tweaks',
     'mptt',
     'filer',
     'easy_thumbnails',
     'ajaxuploader',
     'urlobject',
     'ckeditor',
     'exchange_rate',
     'categories',
     'categories.editor',
     'postman',
     'account',
     'options',
     'ad',
     'web')
    Installed Middleware:
    ('django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware')
    
    
    Traceback:
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
      112.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/transaction.py" in inner
      371.                 return func(*args, **kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/views/generic/base.py" in view
      69.             return self.dispatch(request, *args, **kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
      29.             return bound_func(*args, **kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
      22.                 return view_func(request, *args, **kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
      25.                 return func(self, *args2, **kwargs2)
    File "/Users/mirza/Projekti/oglasise/account/views.py" in dispatch
      21.         return super(ProtectedMixin, self).dispatch(*args, **kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
      87.         return handler(request, *args, **kwargs)
    File "/Users/mirza/Projekti/oglasise/ad/views.py" in post
      85.         return super(AdContactView, self).post(request, *args, **kwargs)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/views/generic/edit.py" in post
      171.             return self.form_valid(form)
    File "/Users/mirza/Projekti/virtualenv/oglasise/src/django-postman/postman/views.py" in form_valid
      181.         is_successful = form.save(**params)
    File "/Users/mirza/Projekti/oglasise/ad/forms.py" in save
      53.         is_successful = super(MessageForm, self).save(recipient, parent, auto_moderators)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/transaction.py" in inner
      430.             with self:
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/transaction.py" in __enter__
      422.         self.entering(self.using)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/transaction.py" in entering
      483.         enter_transaction_management(using=using)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/transaction.py" in enter_transaction_management
      70.     get_connection(using).enter_transaction_management(managed, forced)
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/backends/__init__.py" in enter_transaction_management
      287.         self.validate_no_atomic_block()
    File "/Users/mirza/Projekti/virtualenv/oglasise/lib/python2.7/site-packages/django/db/backends/__init__.py" in validate_no_atomic_block
      367.                 "This is forbidden when an 'atomic' block is active.")
    
    Exception Type: TransactionManagementError at /ad/8/send-message/
    Exception Value: This is forbidden when an 'atomic' block is active.
    
  2. Patrick Samson repo owner

    I guess you have 'ATOMIC_REQUESTS': True, in the DATABASES of your settings.

    If you can live without, the exception should not raise. Anyway I have to find a way to support this feature brought by Dj 1.6. Meanwhile you can safely run Postman without its commit_on_success.

  3. Former user Account Deleted

    This still occurs with 3.1.0 on Django 1.6.5:

    (modernomad)vagrant@vagrant-ubuntu-trusty-32:/vagrant$ pip --version
    pip 1.5.6 from /home/vagrant/envs/modernomad/local/lib/python2.7/site-packages (python 2.7)
    (modernomad)vagrant@vagrant-ubuntu-trusty-32:/vagrant$ pip list | grep postman
    django-postman (3.1.0)
    (modernomad)vagrant@vagrant-ubuntu-trusty-32:/vagrant$ ./manage.py --version
    1.6.5
    (modernomad)vagrant@vagrant-ubuntu-trusty-32:/vagrant$ 
    
    Environment:
    
    
    Request Method: POST
    Request URL: http://localhost:8989/admin/postman/message/add/
    
    Django Version: 1.6.5
    Python Version: 2.7.6
    Installed Applications:
    ('registration',
     'south',
     'core',
     'djcelery',
     'gather',
     'modernomad',
     'postman',
     'django.contrib.contenttypes',
     'django.contrib.auth',
     'django.contrib.sessions',
     'django.contrib.sites',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'django.contrib.admin',
     'django.contrib.flatpages',
     'django.contrib.admindocs')
    Installed Middleware:
    ('django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'modernomad.middleware.crossdomainxhr.CORSMiddleware',
     'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
    
    
    Traceback:
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
      112.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
      432.                 return self.admin_site.admin_view(view)(*args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
      99.                     response = view_func(request, *args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
      52.         response = view_func(request, *args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
      198.             return view(request, *args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
      29.             return bound_func(*args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
      99.                     response = view_func(request, *args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
      25.                 return func(self, *args2, **kwargs2)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/transaction.py" in inner
      371.                 return func(*args, **kwargs)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view
      1131.                 self.save_model(request, new_object, form, False)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/transaction.py" in inner
      430.             with self:
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/transaction.py" in __enter__
      422.         self.entering(self.using)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/transaction.py" in entering
      483.         enter_transaction_management(using=using)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/transaction.py" in enter_transaction_management
      70.     get_connection(using).enter_transaction_management(managed, forced)
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/backends/__init__.py" in enter_transaction_management
      287.         self.validate_no_atomic_block()
    File "/home/vagrant/envs/modernomad/local/lib/python2.7/site-packages/django/db/backends/__init__.py" in validate_no_atomic_block
      367.                 "This is forbidden when an 'atomic' block is active.")
    
    Exception Type: TransactionManagementError at /admin/postman/message/add/
    Exception Value: This is forbidden when an 'atomic' block is active.
    
  4. Patrick Samson repo owner

    This issue has been fixed after 3.1.0. Sorry, pypi is not up-to-date, you should take the app from here, currently at version 3.2.0a1.

  5. Log in to comment