解決すべき非常に簡単な問題があります。 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的な方法は何ですか?基本的に、User
がPartner
に関連付けられている場合に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
)の両方が必要であることを念頭に置いて、これをデコレーターにロールインするのは簡単でしょうか。
どんな助けでも大歓迎です。
if user.partner_set.filter(slug=requested_slug).exists():
# do some private stuff