Django không cung cấp API một cách rõ ràng để thực hiện khóa bảng. Theo kinh nghiệm của tôi, mã được thiết kế tốt hiếm khi cần khóa toàn bộ bảng và hầu hết các vấn đề đồng thời có thể được giải quyết bằng khóa cấp hàng. Đó là một nỗ lực cuối cùng:nó không giải quyết được sự đồng thời, nó chỉ đơn giản là giết chết bất kỳ nỗ lực nào đối với sự đồng thời.
Nếu bạn thực sự cần khóa cấp bảng, bạn có thể sử dụng con trỏ và thực thi các câu lệnh SQL thô:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("LOCK TABLES %s READ", [tablename])
try:
...
finally:
cursor.execute("UNLOCK TABLES;")