Login

SELECT FOR UPDATE in Django < 1.4

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

  1. csrf test by zukosdead 1 month, 2 weeks ago
  2. find even number by Rajeev529 9 months, 3 weeks ago
  3. Form field with fixed value by roam 10 months, 2 weeks ago
  4. New Snippet! by Antoliny0919 10 months, 3 weeks ago
  5. Add Toggle Switch Widget to Django Forms by OgliariNatan 1 year, 1 month ago

Comments

Please login first before commenting.