[英]Django on_delete=models.CASCADE has no effect at SQL level
我的models.py
文件包含:
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)
當我命令python manage.py makemigrations
然后命令python manage.py sqlmigrate <app_name> <migration_name>
我沒有看到任何顯示“ON DELETE=CASCADE”
但是,當我輸入python manage.py migrate
時,遷移工作沒有失敗。
現在,如果我轉到 mysql 表(使用 SequelPro)並嘗試為當前具有會話條目的用戶刪除一行,我會收到以下錯誤:“一行未被刪除。重新加載表以確保內容在此期間未更改。請檢查控制台以查找此表的主鍵內可能存在的錯誤! ”。
現在,當我轉到會話表並刪除該用戶的會話,然后嘗試從用戶表中刪除該用戶的行時,它會正確刪除。 這表明ON DELETE = CASCADE
實際上不在 MySQL 級別工作。
我該如何糾正?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.