Hi Matt, I think it would be preferable to use atomic() here.
>From reading the documentation <https://docs.djangoproject.com/en/1.8/topics/db/transactions/> it looks like you might already be in a transaction when calling `set_autocommit` but it's hard to tell without the full traceback. What kind of errors do you get from: def foo(request): with transaction.atomic(): # ... do stuff involving multiple database actions ... Note that you should never catch `DatabaseError` within an `atomic()` context. You should wrap the context managed block with a try/except instead: *Wrong* with transaction.atomic(): try: # Do database stuff possibly raising database errors except DatabaseError: pass *Right* try: with transaction.atomic(): # Do database stuff possibly raising database errors except DatabaseError: pass Simon Le jeudi 2 avril 2015 14:42:26 UTC-4, Matt Woodward a écrit : > > Hi all -- I just upgraded one of my projects to Django 1.8 from 1.7.7 and > in a view function where we're doing manual transaction management > (Postgres) I'm now getting the error in the subject line. > > Basic gist of the code involved: > > def foo(request): > try: > transaction.set_autocommit(False) > > ... do stuff involving multiple database actions ... > except (DatabaseError, Exception) as e: > transaction.rollback() > > This worked fine in 1.7.7 so I'm not sure what I need to change to get it > working with 1.8. > > I did read the docs on the atomic() functionality and took a few runs at > that but just wound up with different errors, so I thought I'd start with > what I originally had and see what I need to change to make Django 1.8 > happy. But if using the atomic() stuff is preferable any tips around that > would also be appreciated; I can post the errors I'm getting when trying > things that way as needed. > > Appreciate any ideas anyone has. Thanks. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/bc17b239-b42c-4c08-80be-8e5309b10eda%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.