Неопределенная переменная в Django - PullRequest
1 голос
/ 18 января 2011

Я новичок в питоне. Я пробовал учебник по 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)    

Это дает мне неопределенную переменную 'Category' error. Может кто-нибудь помочь мне найти решение?

1 Ответ

3 голосов
/ 18 января 2011

Это потому, что Category не определен до анализа Package.

Python анализирует файл сверху вниз.Следовательно, класс Category не будет определен, когда определено отношение Packages в категориях ManyToManyField.

Вы можете переместить класс Category над классом Package или заключить это отношение в кавычки , поэтому он лениво загружается после создания класса, например:

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

См. Ссылку на ForeignKey здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...