Issue
As the Django Documentation says, select_for_update
returns a Queryset
. But get
does not. Now I have a query which I am sure is going to return only one tuple. But I also need to acquire locks for this transaction. So I am doing something like:
ob = MyModel.objects.select_for_update().filter(some conditions)
Now, I need to modify some values of ob
. But ob
is a Queryset
. This seems pretty simple, but beats me. I'm pretty new to Django. Some advice please.
Solution
Just call get
, slice it, etc. and save as usual. The lock is in place through the transaction.
ob = MyModel.objects.select_for_update().get(pk=1)
Any changes are committed at the end of the transaction (which by default through 1.5 is per-request)
Answered By - Yuji 'Tomita' Tomita
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.