字段列表

时间:2016-03-16 22:18:33

标签: sql django django-models

我在字段列表中收到有关未知列'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()

任何帮助都将非常感激!谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于历史表(来自simple_history)。迁移不适用于他们。我删除了这些表,重新运行了迁移,并且它有效。不知道如何在不删除历史表的情况下使其工作,但幸运的是,在这种情况下它们并不重要。