0

私は Django が他のソースからのデータを表示するのに慣れているこの時点まではかなり新しいです。

私は新しいプロジェクトに着手しており、Django がモデルの関係を処理する方法について質問があります (この特定のインスタンスについて検索してもあまり見つかりませんでした)。それを達成する最も効率的な方法を考えています。

私は3つのモデル、ユーザー(明らかに:S)、プロジェクト、およびレポートを持っています。現在、レポートはプロジェクトの一部であり、ユーザーによって作成されていますが、プロジェクトもユーザーによって「所有」されています。そのため、他のユーザーは別のユーザーのレポート/プロジェクトを見ることができません。Report には 2 つの外部キーが必要ですか、それとも 1 つだけ必要ですか (たとえば、Report1 は Project にリンクされているため、User は projectA と Report1 を作成します)。

Class Report(models.Model):
    user = models.ForeignKey(User)
    project = models.ForeignKey(Project)

また

Class Report(models.Model):
    project = models.ForeignKey(Project)
4

1 に答える 1

1

レポートがプロジェクトを通じてのみユーザーに関連付けられている場合 (これは特に、プロジェクトとは異なるユーザーのレポートを作成しても意味がないことを意味します)、2 番目の方が適しています。(report object).project.user、または検索クエリで として常にユーザーにアクセスできます'project__user'。最初のものを使用すると、レポートとプロジェクトのユーザー データが同期しなくなるリスクがあり、アプリにとって意味がありません。

于 2012-04-30T21:22:29.810 に答える