所以,我有帖子和类别:
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,谢谢!
答案 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()