0

モデルのオブジェクトとしてリストを使用できることを知りたいのですが。

私はdjangoアプリを開発していますが、ユーザーが他のユーザーを「いいね」できるようにし、他のページでレンダリングできるように、好きなユーザーのリストを保持してほしいと思っています。

それで、「listField」のようなものはありますか?

ご協力ありがとうございました。

4

2 に答える 2

2

間違いなく多対多の関係が最善であり、throughモデルを追加して、いいねの作成時間を記録し、ユーザーとは無関係にそれらを表示できるようにすることが本当に役立つ場合があります(アクティビティストリームなど)。例:(テストされていません)

    class MyUser(User):
        ...
        likers = models.ManyToManyField('self', through='Like', 
                                       symmetrical=False, 
                                       related_name='liked_users')
        ...

    class Like(models.Model):
        liker = models.ForeignKey(MyUser, related_name='likes_given')
        liked_user = models.ForeignKey(MyUser, related_name='likes_received')
        ...

この便利なhttp://charlesleifer.com/blog/self-referencing-many-many-through/を見つけるかもしれません

于 2012-10-28T19:11:33.160 に答える
0

いいえ、必要なのは多対1の関係です:https ://docs.djangoproject.com/en/dev/topics/db/models/#many-to-one-relationships

于 2012-10-28T18:41:21.940 に答える