我在字段列表中收到有关未知列'review_id'的以下错误。要重新创建它,我可以运行django shell,
from reviews.models import Review
r = Review.objects.get(pk=1)
r.delete()
以下是评论模型:
class Review(models.Model):
reviewer = models.ForeignKey('projects.Person', related_name='reviewer', null=True)
reviewee = models.ForeignKey('projects.Person', related_name='reviewee', null=True)
review_type = models.ForeignKey(ReviewType, null=True)
review_status = models.ForeignKey(ReviewStatus, null=True)
cycle = models.ForeignKey(ReviewCycle, null=True)
# Date time of original instance creation; not to be edited
orig_date = models.DateTimeField(default=timezone.now())
# Date review submitted
submitted_date = models.DateTimeField(default=None, null=True)
# Store historical revisions
history = HistoricalRecords()
这是在实际网站上,所以我无法重置数据库。当我查看mysql中的reviews_review表时,没有列review_id(列'id')。我尝试重新运行迁移并运行syncdb。
在Review之上建立了一个名为peerEvaluation的模型。据推测,当您尝试删除Review实例时,Django会尝试删除peerEvaluation以及Review实例。 peerEvaluation的代码是:
class peerEvaluation(models.Model):
review = models.ForeignKey(Review, null=True)
# Text fields
projects_worked_on = models.TextField(max_length=10000, null=True)
analytical_well = models.TextField(max_length=10000, null=True)
analytical_improve = models.TextField(max_length=10000, null=True)
communication_well = models.TextField(max_length=10000, null=True)
communication_improve = models.TextField(max_length=10000, null=True)
planning_well = models.TextField(max_length=10000, null=True)
planning_improve = models.TextField(max_length=10000, null=True)
teamwork_well = models.TextField(max_length=10000, null=True)
teamwork_improve = models.TextField(max_length=10000, null=True)
# Date time of original instance creation, not to be edited
orig_date = models.DateTimeField(default=timezone.now())
# Store historical revisions
history = HistoricalRecords()
任何帮助都将非常感激!谢谢!
答案 0 :(得分:1)
问题在于历史表(来自simple_history)。迁移不适用于他们。我删除了这些表,重新运行了迁移,并且它有效。不知道如何在不删除历史表的情况下使其工作,但幸运的是,在这种情况下它们并不重要。