python - Django 中 undefined variable

标签 python django

我是一个Python新手。我正在尝试 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)    

它给了我一个 undefined variable “类别”错误。有人可以帮我找到解决方案吗?

最佳答案

这是因为在解析Package之前没有定义Category

Python 从上到下解析文件。因此,当定义 Packages 的类别 ManyToManyField 关系时,将不会定义 Category 类。

您可以将 Category 类移至 Package 类之上,或者将关系括在 引号 中,以便在类创建后延迟加载,如下所示:

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

参见ForeignKey引用here .

关于python - Django 中 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721307/

相关文章:

python - 如何使用 ruamel.yaml 读取/写入 markdown yaml frontmatter?

python - pyLDAvis prepare() 很慢

python - 发送自定义密码重置表格

django - 分享 Django 等 NodeJS 应用

python - 使用 4 channel DNA 数据输入 Keras 时出现格式错误

python - 缩短 Matplotlib 图中的线段

django - 字段不显示在 django 管理中

python - CentOS 6.4 + Haystack (2.1.0) + ElasticSearch (1.2.1) = SearchParseException ...解析失败

python - Django django.test 客户端post请求

python - Django模型保存值的方法