0

를 가져올 수 없습니다. makemigrations 명령을 실행하면 가져 오기 오류가 발생하고 'Topic'이라는 이름이 정의되어 있지 않습니다. 이것의 원인이 무엇일까요? 분명히 정의 된 것으로 보인다. 나는 거의 db 내에서 문제가되지 않는다는 것을 배제했다.이름 오류 : 나는 외래 키를 통해 모델 <em>주제</em>에 모델 <em>에게 포스트</em>을 연결하려고 [모델명]

class Post(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)   
    title = models.CharField(max_length=100) 
    summary = models.TextField(blank=True, null=True) 
    content = models.TextField() 
    draft = models.BooleanField(default=False) 
    details = models.CharField(blank=True, null=True, max_length=250) 
    updated = models.DateTimeField(auto_now=True, auto_now_add=False) 
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True) 
    topic = models.ForeignKey(Topic, blank=True, null=True) 
    thumbnail = models.ImageField(upload_to='media', blank=True, null=True) 


    def get_absolute_url(self): 
     return reverse('posts:detail', kwargs={'pk': self.pk}) 

    def __str__(self): 
     return self.title 


class Topic(models.Model): 
    name = models.CharField(max_length=50) 
    description = models.TextField() 
    picture = models.ImageField(upload_to='media', blank=True, null=True) 
    isperson = models.BooleanField(default=False) 
    ispolicy = models.BooleanField(default=False) 
    positive = models.BooleanField(default=True) 
    percent = models.CharField(max_length=5) 

    def __str__(self): 
     return self.name 

아이디어가 있으십니까? 이 코드에 문제가 표시되지 않으며, 어느 쪽도 당신이 파일에서 제대로 포스트 모델에 대한 코드를 들여 쓰기 것을 고려하고

답변

1

주제 모델 을 인식 내 IDE를했다.

해결책 : 게시물 위에 주제를 정의하십시오.

0

먼저,이

topic = models.ForeignKey(Topic, blank=True, null=True) 

은 아직 선언되지 않은 모델에 외래 키를 설정하는 장고를 알려줍니다이 방법이

topic = models.ForeignKey('Topic', blank=True, null=True) 

수 있지만 의지한다 코드에서 더 선언되어야한다.

둘째, 제대로 포스트 모델과 방법을 들여해야합니다

class Post(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True) 
    title = models.CharField(max_length=100) 
    summary = models.TextField(blank=True, null=True) 
    content = models.TextField() 
    draft = models.BooleanField(default=False) 
    details = models.CharField(blank=True, null=True, max_length=250) 
    updated = models.DateTimeField(auto_now=True, auto_now_add=False) 
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True) 
    topic = models.ForeignKey('Topic', blank=True, null=True) 
    thumbnail = models.ImageField(upload_to='media', blank=True, null=True) 

    def get_absolute_url(self): 
     return reverse('posts:detail', kwargs={'pk': self.pk}) 

    def __str__(self): 
     return self.title 

당신이 지금 가지고, 장고는 들여 쓰기되지 않은 필드는 포스트 모델에 속한다는 것을 이해하지 않기 때문에

.