Django NameError при обращении к полю ManyToMany - PullRequest
2 голосов
/ 11 апреля 2011

У меня есть стол с именем PlayCat. который в основном хранит все названия категорий игровых видов деятельности. такие как дискотека, пул п вещи. Поэтому я хочу, чтобы на эти категории ссылались b (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

Я не понимаю, почему произошла ошибка NameEr и что я не определил. Пожалуйста помоги. Спасибо.

1 Ответ

15 голосов
/ 11 апреля 2011

Я думаю, это потому, что у вас есть модель PlayCat, определенная после модели Play. Так что это не может решить это.

Вы можете либо поставить модель PlayCat перед Play, либо использовать строку для справки

category = models.ManyToManyField('PlayCat')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...