我的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>
时,我看不到任何说“&#34; ON DELETE = CASCADE&#34;
但是,当我键入python manage.py migrate
时,迁移工作没有失败。
现在,如果我转到mysql表(使用SequelPro)并尝试为当前有会话条目的用户删除一行,我会收到以下错误:&#34; 一行没被删除。重新加载表格以确保内容在此期间未发生变化。检查控制台是否存在此表主键内可能存在的错误! &#34;。
现在,当我转到会话表并删除该用户的会话,然后尝试从用户表中删除用户的行时,它会正确删除。这表明ON DELETE = CASCADE
实际上并没有在MySQL级别工作。
我该如何纠正?