Django tidak secara eksplisit menyediakan API untuk melakukan penguncian tabel. Dalam pengalaman saya, kode yang dirancang dengan baik jarang perlu mengunci seluruh tabel, dan sebagian besar masalah konkurensi dapat diselesaikan dengan penguncian tingkat baris. Ini adalah upaya terakhir:itu tidak menyelesaikan konkurensi, itu hanya membunuh segala upaya konkurensi.
Jika Anda benar-benar membutuhkan penguncian tingkat tabel, Anda dapat menggunakan kursor dan mengeksekusi pernyataan SQL mentah:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("LOCK TABLES %s READ", [tablename])
try:
...
finally:
cursor.execute("UNLOCK TABLES;")