2

人や会社をリストするアプリケーションを作成しました。個人および企業の各エントリは、ユーザーによって所有されます。

owner = models.ForeignKey('auth.User', related_name='+', null=True, blank=True)

各ビューで特定のユーザーが所有する投稿のみを表示する方法を知りたいです。そのため、すべてのユーザーによるすべてのエントリではなく、ユーザーによって追加された会社のみが表示されます。

if request.user = people.owner が機能する可能性があると思いますが、これが本当に最善の方法ですか?

前もって感謝します!

4

1 に答える 1

2

ビューで関連するモデルを見つけたら、ユーザーでフィルター処理します。

 people = People.objects.filter(owner=request.user).filter(...)

これを少し除外したい場合は、関連するメソッドでカスタムマネージャーを使用できます。これは次のようになります

people = People.objects.for_current_user(request).filter(...)

ただし、オブジェクトを渡す必要があるため、入力の手間が減ることはありませんが、requestより複雑なロジックが必要な場合 (スーパーユーザーがすべての人を表示できるなど) には便利です。

于 2012-08-06T17:57:54.913 に答える