O Django não fornece explicitamente uma API para realizar o bloqueio de tabelas. Na minha experiência, código bem projetado raramente precisa bloquear uma tabela inteira, e a maioria dos problemas de simultaneidade pode ser resolvida com bloqueio em nível de linha. É um esforço de última hora:não resolve a simultaneidade, simplesmente mata qualquer tentativa de simultaneidade.
Se você realmente precisa de bloqueio em nível de tabela, pode usar um cursor e executar instruções SQL brutas:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("LOCK TABLES %s READ", [tablename])
try:
...
finally:
cursor.execute("UNLOCK TABLES;")