我有一个名为PlayCat的表。它基本上存储了有趣的活动的类别名称。比如迪斯科舞厅,游泳池等。因此,当用户创建Play竞技场时,我希望这些类别被引用(ManyToMany),他/她可以选择它所属的类别。
播放:
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我没有定义。请帮忙。谢谢。
答案 0 :(得分:15)
我想这是因为您在模型播放后定义了PlayCat模型。所以它无法解决它。
您可以在Play之前放置模型PlayCat,也可以使用字符串作为参考
category = models.ManyToManyField('PlayCat')