models.py
class Thread(models.Model):
title = models.CharField(max_length=300)
answer_count = models.PositiveIntegerField(default=0)
added_at = models.DateTimeField(auto_now_add=True)
accepted_answer = models.ForeignKey('forum.Post', null=True, blank=True, related_name='+')
我试图将accepted_answer ForeignKey更改为BooleanField
例如:
accepted_answer = models.BooleanField()
并获得迁移错误“待处理的触发事件错误”.请看一下.
最佳答案 尝试在一个操作中更新和更改同一个表的架构时,似乎会发生此错误.
例如,在从字段中删除null = True时,当makemigrations提示时提供新的默认值后,似乎出现此错误,因为Django正在尝试更改可空性,同时还更新列.
解决方法,取决于具体情况:
>最简单的通常是添加具有所需属性的新字段,然后删除旧字段(可能在复制数据之后).
>如果可以通过为需要新默认值的所有字段(Django在迁移期间询问)设置值来避免错误,请尝试在进行迁移/架构更改之前设置这些值.
在您的具体情况下,添加一个新字段然后删除旧字段可能是要走的路.