我models.py
文件包含:Django的on_delete = models.CASCADE具有在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)
當我命令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級別上工作。
我該如何糾正它?
這就是這樣一個無賴:( –