I have an app that uses a few custom SQL calls through
connection.cursor()
as described in
http://docs.djangoproject.com/en/dev/topics/db/sql/#topics-db-sql.
However they don't display the same transaction semantics as
specified
in
http://docs.djangoproject.com/en/dev/topics/db/transactions/#topics-db-transactions.
For example, if I have a view that inserts some data using
connection.cursor(),
then throws an exception, the data inserted remains in the database.
I'm not sure if the behaviour I'm observing is a bug, or if I've just
failed to associate
the cursor with the transaction in some way. If it's something I've
missed, could someone
advise me on how to do that?
For example (views.py):
from django.http import HttpResponse
def test1(request):
from django.db import connection
cur = connection.cursor()
# this data is inserted even though the view does not succeed
cur.execute("insert into table (column) values ('value');")
raise "This view should not change the database"
return HttpResponse("hello")
This happens whether or not I explicitly mark the view with
@transaction.commit_on_success.
I'm using postgresql_psycopg2.
Thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---