- Author:
- joaofrancese
- Posted:
- June 13, 2012
- Language:
- Python
- Version:
- 1.2
- Score:
- 0 (after 0 ratings)
SELECT FOR UPDATE, which does row-level locking in the database, was added by Django only in version 1.4. This snippet emulates that feature in older versions of Django. Tested in Django 1.2, but should work in newer versions as well.
select_related is removed because it causes errors when used with RawQuerySet.
1 2 3 4 5 6 | def select_for_update(queryset):
"""Returns a RawQuerySet with SELECT ... FOR UPDATE."""
query = queryset.query.clone()
query.select_related = False
sql = "%s FOR UPDATE" % query
return queryset.model.objects.raw(sql)
|
More like this
- get_object_or_none by azwdevops 3 months, 2 weeks ago
- Mask sensitive data from logger by agusmakmun 5 months, 1 week ago
- Template tag - list punctuation for a list of items by shapiromatron 1 year, 7 months ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 1 year, 7 months ago
- Serializer factory with Django Rest Framework by julio 2 years, 2 months ago
Comments
Please login first before commenting.