1
    class Punch(models.Model):
        ring            = models.ForeignKey(Ring)
        voters           = models.ManyToManyField(settings.AUTH_USER_MODEL)

    class Ring(models.Model):
        category        = xxxx

ManyToManyField を持つこのクラスがあります。

各ユーザーは、パンチごとに 1 回だけ投票できる必要があります。ここで、ユーザーが特定のパンチに投票したかどうかを知る必要があります。

どうすればいいですか?

punch.voters.filter(??? = request.user)

ドキュメントを読んで、私はこれを思いつきました:

voters = get_user_model().objects.filter(punch__voters=request.user)

しかし、これにより、ユーザーがすべてのパンチに投票した合計回数がわかります。しかし、彼がそれに投票したかどうかを確認するために、特定の 1 つのパンチだけに関心があります。

私はまだこれを解決するのに苦労しています。手伝ってくれてありがとう

4

2 に答える 2

2

多対多の関係は、関係全体のルックアップを使用して照会できます。

于 2013-03-23T21:14:51.153 に答える
0

これを試すことができますか:

punch.voters.filter(pk=request.user.pk)

filtertry-expectラップに置き換えることもできますget

于 2013-03-24T06:09:24.353 に答える