2

私は Django を初めて使用し、古い PHP の習慣を破ろうとしています。以下は2つのモデルです。混乱させるために、それらは別々のファイル、別々のアプリに存在します...

#article.models
from someapp.author.models import Author

class Article(model.Model):
    ...
    author = models.ForeignKey(Author)


# author.models
class Author(model.Model):
    ...

このスキーマから、著者によるすべての記事を取得できるようにしたいと考えています。次のようなもの:
著者 = 著者(pk=1)
記事 =著者.記事

私の最初の反応は、著者 ID に基づいて記事モデルで単純なルックアップを行うメソッドを作成することでした。ここで起こったことは、個別のファイルが原因で終わることのないインクルージョン ループでした。作成者が必要な記事は、ForeignKey に使用するためにインポートされ、作成者は、モデルのルックアップに使用するために含まれる記事を必要としました。これはハッキーで間違っていると感じました。私はむしろそれを正しい方法で行いたいと思っています...では、Djangoの方法とは何ですか?

4

1 に答える 1

3

これはあなたが求めているものだと思います...

class Article(model.Model):
    ...
    author = models.ForeignKey(Author, related_name='articles')

ちなみに、デフォルトでは、何も変更せずに、これでうまくいくと思います...

article.author_set

article.authorsただし、上記の構文を維持するには、 related_name.

于 2010-01-20T05:13:46.973 に答える