Django tillhandahåller inte uttryckligen ett API för att utföra tabelllåsning. Enligt min erfarenhet behöver väldesignad kod sällan låsa en hel tabell, och de flesta samtidighetsproblem kan lösas med radnivålåsning. Det är ett sista försök:det löser inte samtidighet, det dödar helt enkelt alla försök till samtidighet.
Om du verkligen behöver låsning på tabellnivå kan du använda en markör och köra råa SQL-satser:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("LOCK TABLES %s READ", [tablename])
try:
...
finally:
cursor.execute("UNLOCK TABLES;")