私models.py
ファイルが含まれていますジャンゴ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)
iはpython manage.py makemigrations
を指揮し、 "= ON DELETE CASCADEを" python manage.py sqlmigrate <app_name> <migration_name>
は、私が言う何も表示されません
ただし、python manage.py migrate
と入力すると、移行は正常に機能します。
ここで、SequelProを使用してmysqlテーブルにアクセスし、現在セッションエントリがあるユーザの行を削除しようとすると、次のエラーが表示されます: "1行が削除されませんでした。このテーブルのプライマリキー内で起こりうるエラーについてコンソールで確認してください! "をコンソールでチェックしてください。
私はセッションテーブルに移動してこのユーザーのセッションを削除し、ユーザーテーブルからユーザーの行を削除しようとすると、正しく削除されます。これは、ON DELETE = CASCADE
が実際にMySQLレベルで動作していないことを示しています。
どうすれば修正できますか? docs(強調鉱山)から
そのようなバマーです:( –