1

あるユーザーが別のユーザーをフォローできる、自分の Web サイトで Twitter に似た何かを達成しようとしています。特定の ID を持つユーザーをフォローしているすべてのユーザー レコードを選択したいと考えています。私のフォロー関係モデルは次のようになります。

class Following(models.Model):
  user = models.ForeignKey(User, related_name='is_following')
  followed = models.ForeignKey(User, related_name='is_followed')

そして、django.contrib.auth.models User クラスを使用しています。

フォローされている人を表す "myUser" という名前の User オブジェクトがあると仮定すると、全員がフォローするための適切なクエリは何ですか?

4

2 に答える 2

3

mipadi の回答に「.all」がありません。

ビューでは、クエリセット

followers = my_user.is_followed.all()

Followingmy_user がフォローされているオブジェクトのリストを返します。Followingオブジェクトからフォローしているユーザーを取得するには、次をf使用しますf.user

フォロワーがテンプレート コンテキストにある場合は、次のことができます。

{% for f in followers %}

  {{ f.user }}

{% endfor %}

多対多の関係については、Django のドキュメントが役に立つかもしれません。

于 2009-08-13T03:42:33.560 に答える
-1

ここでrelated_name属性の出番です。関係をさかのぼってたどることができます。したがって、特定のユーザーをフォローしているすべてのユーザーを取得するには、 を使用しますmy_user.is_followed

followed少し混乱するかもしれないので、これらの関係を反映するように属性の名前を変更したいことは明らかですがis_followed、それがあなたのやり方です。

于 2009-08-13T00:09:30.140 に答える