我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级别上工作。
我该如何纠正它?
这就是这样一个无赖:( –