2011-04-11 2 views
2

PlayCat이라는 테이블이 있습니다. 기본적으로 장난스러운 활동의 범주 이름을 저장합니다. 디스코, 수영장 n 물건과 같은. 그래서 사용자가 자신이 속한 카테고리를 선택할 수있는 Play 경기장을 만들 때이 카테고리를 참조 (ManyToMany)하고 싶습니다.ManyToMany 필드 참조 중 Django NameError

재생 :

class Play(models.Model): 
    shopname=models.CharField(max_length=100) 
    desc=models.CharField(max_length=500,blank=True, null=True) 
    address=models.CharField(max_length=300) 
    category = models.ManyToManyField(PlayCat) 
    url=models.URLField(blank=True, null=True) 
    email=models.EmailField(blank=True, null=True) 
    slug=models.SlugField(blank=True, null=True) 
    phone=models.CharField(max_length=40,blank=True, null=True) 

    def __unicode__(self): 
    return self.shopname 

과 같은 models.py에 내가 'PlayCat'

class PlayCat(models.Model): 
    cat = models.CharField(max_length=45) 
    def __unicode__(self): 
    return self.cat 

나는 또한 PlayCat 데이터베이스를 채운하지만 난 참조 M2M을 추가 할 때 오류 메시지가 나타납니다이

단말 말

_import__(name) 
    File "/home/saud/Downloads/Django-1.2.3/ms/ms/ms/sale/models.py", line 104, in <module> 
    class Play(models.Model): 
    File "/home/saud/Downloads/Django-1.2.3/ms/ms/ms/sale/models.py", line 108, in Play 
    category = models.ManyToManyField(PlayCat) 
NameError: name 'PlayCat' is not defined 

왜 나는 NameError와 wat가 없는지 이해하지 못한다. 한정된. 도와주세요. 고맙습니다.

답변

13

모델 Play 후에 모델 PlayCat이 정의되어 있기 때문입니다. 그래서 그것을 해결할 수 없습니다.

당신도 플레이하기 전에 모델 PlayCat을 넣어 또는 참조

그것은 일
category = models.ManyToManyField('PlayCat') 
+0

에 대한 문자열을 사용할 수 있습니다. 고마워. :) –