我有一张桌子叫“花猫”。它基本上存储了所有好玩的活动的类别名称。比如迪斯科,游泳池之类的。所以当用户创建一个竞技场,在那里他/她可以选择它所属的所有类别时,我希望这些类别被引用(很多)。
播放:

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

在同一个模型里,我有“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

我不明白为什么名字错误和我没有定义。请帮忙。谢谢您。

最佳答案

我想这是因为你有一个模型游戏定义后,一个模型游戏。所以无法解决。
可以在播放前放置PlayCat模型,也可以使用字符串作为参考

category = models.ManyToManyField('PlayCat')

10-06 06:05