編輯:Django的版本1.6.1Django的外鍵不能正常工作
我不斷收到試圖通過管理來創建一個RedditPost對象時,這個錯誤:
no such column: subreddit_id
的subreddit_id
錯誤引用RedditPost.subreddit
(未版(Subreddit) .subreddit),然後由於某種原因在最後添加了一個_id
。
參考文獻沒有問題。當試圖從admin創建RedditPost時,Subreddits的下拉菜單將顯示所有可用的Subreddits對象。
class Subreddit(models.Model):
subreddit = models.CharField(max_length=100, primary_key=True)
title = models.CharField(max_length=100, null=False)
def __unicode__(self):
return smart_unicode(self.subreddit)
class RedditPost(models.Model):
comments_link = models.CharField(max_length=256, primary_key=True)
submitted_link = models.CharField(max_length=256, null=False)
rank = models.IntegerField(null=False)
title = models.CharField(max_length=100, null=False)
reddit_timestamp = models.DateTimeField(null=False)
updated_at = models.DateTimeField(auto_now_add=True, auto_now=True)
subreddit = models.ForeignKey('Subreddit')
議決/ SOLUTION:我最後用「沖洗」,這並沒有清理數據庫,當我(我沒有使用任何遷移)所做的更改。我不得不使用:
python manage.py sqlclear "app_name" | python manage.py dbshell
完全清除數據庫,然後我不得不請點擊此鏈接(Django South error with initial migration)做正確遷移。
django版本?你是否在第二步添加了RedditPost.subreddit? – sax
@Alds我知道縮進代碼的樣式看起來非常整齊,但PEP-8建議不要這樣做 – jamylak
因此您在'RedditPost'模型中添加了'models.ForeignKey('Subreddit')'字段,但是您還沒有完成模式在數據庫上遷移? – Anentropic