Django biedt niet expliciet een API om tabelvergrendeling uit te voeren. In mijn ervaring hoeft goed ontworpen code zelden een hele tabel te vergrendelen, en de meeste gelijktijdigheidsproblemen kunnen worden opgelost met vergrendeling op rijniveau. Het is een laatste poging:het lost concurrency niet op, het doodt eenvoudig elke poging tot concurrency.
Als je echt vergrendeling op tabelniveau nodig hebt, kun je een cursor gebruiken en onbewerkte SQL-instructies uitvoeren:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("LOCK TABLES %s READ", [tablename])
try:
...
finally:
cursor.execute("UNLOCK TABLES;")