Django nie udostępnia jawnie API do blokowania tabel. Z mojego doświadczenia wynika, że dobrze zaprojektowany kod rzadko musi blokować całą tabelę, a większość problemów ze współbieżnością można rozwiązać za pomocą blokowania na poziomie wiersza. To ostatnia deska ratunku:nie rozwiązuje współbieżności, po prostu zabija każdą próbę współbieżności.
Jeśli naprawdę potrzebujesz blokowania na poziomie tabeli, możesz użyć kursora i wykonać surowe instrukcje SQL:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("LOCK TABLES %s READ", [tablename])
try:
...
finally:
cursor.execute("UNLOCK TABLES;")