2014-12-20 3 views
0

편집을 작동하지 .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') 

해결/해결책 : 나는 (내가 어떤 마이그레이션을 사용하지 않은) 변경 한 경우 데이터베이스를 정리하지 않았다 "플러시"를 사용했다.

python manage.py sqlclear "app_name" | python manage.py dbshell 

후 완전히 데이터베이스 명확하고 내가 제대로 마이그레이션을 할 수있는 링크 (Django South error with initial migration)을 따라했다 : 나는 사용했다.

+0

django 버전? 두 번째 단계에서'RedditPost.subreddit'을 추가 했습니까? – sax

+1

@Alds 들여 쓰기 된 코드의 스타일이 매우 깔끔한 것 같지만 PEP-8은 – jamylak

+0

을 권장하므로'RedditPost' 모델에'models.ForeignKey ('Subreddit') 필드를 추가했지만 스키마를 완료하지 않았습니다 데이터베이스에서의 마이그레이션? – Anentropic

답변

5

_id은 장고가 자동으로 추가합니다. 그것을위한 reasions가있다.

당신의 DB 테이블 RedditPost 그냥 (이 새 열을 추가하여) 테이블을 변경 한 후 무엇이든지이 열 ..

을 할 doesnot : (south 필요 설치할 수 : 장고 버전 < 1.7

경우)

python manage.py schemamigration yourapp --auto 
    python manage.py migrate yourapp 

경우 장고 버전> = 1.7 :

python manage.py makemigrations 
    python manage.py migrate 
+0

기본 키에 comment_link를 설정하면 RedditPost에서 _id를 찾을 때 테이블 참조가 해당 열을 참조하게됩니다. 그리고 실제로 그것은 Reddit Post의 외래 키의 _id를 찾고있는 것으로 보입니다. 오류는 다음과 같이 표시됩니다 : "해당 열 없음 : gallery_redditpost.subreddit_id" – Alds