2011-01-18 4 views
1

나는 파이썬 초보자입니다. 나는 장고 튜토리얼을 시험해보고이 오류가 발생했습니다. 두 클래스가 있습니다 :django에서 정의되지 않은 변수

class Package(models.Model): 
    name = models.CharField(max_length =300) 
    version = models.CharField(max_length=300,blank=True) 
    home_page = models.URLField(blank=True) 
    summary = models.TextField() 
    description = models.TextField(blank=True) 
    keywords = models.TextField(blank=True) 
    categories = models.ManyToManyField(**Category**,related_name="packages") //error line 

class Category(models.Model): 
    number = models.IntegerField() 
    topic = models.ForeignKey(Package,related_name='categories') 
    value = models.CharField(max_lenght=100)  

그것은 '정의되지 않은 변수'범주 오류를 제공합니다. 누군가 해결책을 찾는데 도움이 될 수 있습니까?

답변

3

Package이 구문 분석되기 전에 Category이 정의되지 않았기 때문입니다.

파이썬은 파일을 위에서 아래로 구문 분석합니다. 따라서 Packages의 범주 ManyToManyField 관계가 정의되면 Category 클래스가 정의되지 않습니다.

당신은 Package 클래스 위 Category 클래스를 이동하거나 따옴표 그래서이 느리게과 같이, 클래스 생성 후 장전에 관계를 묶으 수 있습니다

categories = models.ManyToManyField('Category',related_name="packages") 

이 외래 키 참조 here를 참조하십시오.

+0

답장을 보내 주셔서 감사합니다 :). 그것은 일했다 !!! –

관련 문제