web-dev-qa-db-ja.com

Django ManyToManyフィールドのオブジェクトをチェック

解決すべき非常に簡単な問題があります。 0以上のユーザーが関連付けられているパートナーモデルがあります。

class Partner(models.Model):
    name = models.CharField(db_index=True, max_length=255)
    slug = models.SlugField(db_index=True)
    user = models.ManyToManyField(User)

ここで、ユーザーオブジェクトとパートナーオブジェクトがある場合、ユーザーがパートナーに関連付けられているかどうかを確認する最もPython的な方法は何ですか?基本的に、UserPartnerに関連付けられている場合にTrueを返すステートメントが必要です。

私が試してみました:

users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
    # do some private stuff

これは機能しますが、より良い方法があると感じています。さらに、名前付きパラメーター(slug)と要求オブジェクト(user)の両方が必要であることを念頭に置いて、これをデコレーターにロールインするのは簡単でしょうか。

どんな助けでも大歓迎です。

51
Darwin Tech
if user.partner_set.filter(slug=requested_slug).exists():
     # do some private stuff
81
Peter DeGlopper