現在djangoでtodoアプリを開発しているのですが、外部キーの再設定でエラーが発生しています。
TodoのgroupがTodoGroupのgroup_nameを参照していましたが、TodoGroupに追加したuuidを参照先にしたいです。
makemigrationsは通るのですが、migrateを行うと、
「django.db.utils.OperationalError: foreign key mismatch - "todo_todo" referencing "todo_todogroup"」と表示が出ます。
Todoのgroupの外部キーがおかしいことはわかるのですが、解決方法がわからないです。
また、TodoGroupとTodoの両方のデータは削除してあります。
class TodoGroup(models.Model): group_name = models.CharField(max_length=50,verbose_name='グループ名') created_by = models.ForeignKey(User, on_delete=models.CASCADE) updated = models.DateTimeField('更新日時',auto_now=True) uuid = models.UUIDField(primary_key=True, default=uuid.uuid4,editable=False,unique=True) def __str__(self): return self.group_name class Meta: verbose_name_plural = ('タスクグループ')
class Todo(models.Model): title = models.CharField('タイトル',max_length=55) body = models.TextField('詳細/内容', max_length=200) created = models.DateTimeField('作成日時',auto_now_add=True) updated = models.DateTimeField('更新日時',auto_now=True) deadline = models.DateTimeField('期限') created_by = models.ForeignKey(User, on_delete=models.CASCADE) group = models.ForeignKey(TodoGroup, to_field='uuid',on_delete=models.CASCADE,related_name='tasks',verbose_name='グループ') uuid = models.UUIDField(primary_key=False, default=uuid.uuid4,editable=False,unique=True) def __str__(self): return self.title class Meta: verbose_name_plural = ('タスク')
開発環境
python3.6.9
django 3.2.3
vscode
あなたの回答
tips
プレビュー