tập tin models.py
My chứa:Django on_delete = models.CASCADE không có tác dụng ở mức SQL
class User(models.Model):
email = models.CharField(max_length=100, unique=True)
password = models.CharField(max_length=100)
create_time = models.DateTimeField(auto_now_add=True)
class Session(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
token = models.CharField(max_length=100, unique=True)
Khi tôi lệnh python manage.py makemigrations
và sau đó lệnh python manage.py sqlmigrate <app_name> <migration_name>
tôi không thấy bất cứ điều gì mà nói "ON DELETE CASCADE ="
Tuy nhiên, việc di chuyển không hoạt động khi tôi nhập python manage.py migrate
.
Bây giờ, nếu tôi truy cập bảng mysql (sử dụng SequelPro) và cố xóa hàng cho người dùng hiện có mục nhập phiên, tôi nhận được lỗi sau: "Một hàng không bị xóa." để đảm bảo rằng nội dung không thay đổi trong thời gian chờ đợi. Hãy kiểm tra Bảng điều khiển để biết các lỗi có thể có trong (các) khóa chính của bảng này! ".
Bây giờ, khi tôi chuyển đến bảng phiên và xóa các phiên của người dùng này và sau đó cố xóa hàng của người dùng khỏi bảng người dùng, nó sẽ xóa chính xác. Điều này cho thấy ON DELETE = CASCADE
không thực sự hoạt động ở cấp MySQL.
Tôi làm cách nào để sửa?
đó thật là một bummer :( –