【发布时间】:2016-03-16 22:18:33
【问题描述】:
我收到以下关于字段列表中未知列“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()
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
您是否为
PeerEvaluation模型生成了迁移?
标签: sql django django-models