使用列表作为模型的对象Django

时间:2012-10-28 18:39:00

标签: django django-models

我想知道可以使用列表作为模型的对象。

我正在开发一个django应用程序,我希望用户能够“喜欢”其他用户,并保留他们喜欢的用户列表,以便我可以在其他页面中呈现它。

那么有类似“listField”的内容吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)