1

だから、私は投稿とカテゴリを持っています:

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が定義されていません。どうして???

私はsqlliteを使用しています、ありがとう!

4

1 に答える 1

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()
于 2012-09-23T15:54:55.597 に答える