Django中的模型未定义

时间:2012-09-23 15:53:49

标签: python django django-models

所以,我有帖子和类别:

class Post(models.Model):
    ...
    category = models.ForeignKey(Category)

    def __unicode__(self):
        return self.title

class Category(models.Model):
    category = models.CharField(max_length = 30, unique=True)
    id_post = models.ForeignKey(Post)   

    def __unicode__(self):
        return self.category

我写

python manage.py验证

和NameError:未定义名称Category。 WHY ???

我使用sqllite,谢谢!

1 个答案:

答案 0 :(得分:2)

在models.py中将类别放在帖子上方。 Django / Python从上到下验证模型。当我开始使用Django时,我也偶然发现了它:)

class Category(models.Model):
    category = models.CharField(max_length = 30, unique=True)   

    def __unicode__(self):
        return self.category

class Post(models.Model):
    ...
    category = models.ForeignKey(Category)

    def __unicode__(self):
        return self.title

当您在源代码中放置从Post到Category的关系时,您可能希望从类别实例到所有相关的post实例之间存在关系。这是Django中的内置函数,您可以使用'modelname_set'属性来反转ForeignKey关系。

因此,要获取分配到特定类别的所有帖子,您可以执行以下操作:

myCategory =Category.objects.get(pk=1)
myCategory.post_set.all()