Django:不同模型之间的友谊关系

时间:2016-07-26 22:59:19

标签: python django foreign-key-relationship django-database

我正在尝试使用django-friendship包在我的项目中建立友谊关系。问题是我要建立我的用户模型和我自己的模型组织之间的关系。但是当我试图这样做时,事实证明django-friendship只支持两个相同类型的对象之间的关系(例如User-User类型)。我甚至试图覆盖django-friendship中的现有模型,以便改变方法但没有任何成功。目前我在舞台上,朋友的请求是从用户发送到组织的,但我需要接受它,并且我在哪里挣扎。

友谊/ models.py

class FriendshipRequest(models.Model):
    """ Model to represent friendship requests """
    from_user = models.ForeignKey(user_model, related_name='organisation_requests_sent')
    to_user = models.ForeignKey(organisation_model, related_name='organisation_requests_received')

    def accept(self):
        """ Accept this friendship request """
        relation1 = Friend.objects.create(
            from_user=self.from_user,
            to_user=self.to_user
        )

        relation2 = Friend.objects.create(
            from_user=self.to_user,
            to_user=self.from_user
        )

        friendship_request_accepted.send(
            sender=self,
            from_user=self.from_user,
            to_user=self.to_user
        )

class Friend(models.Model):
    """ Model to represent Friendships """
    to_user = models.ForeignKey(user_model, related_name='organisations')
    from_user = models.ForeignKey(organisation_model, related_name='_unused_organisation_relation')

问题在于,当它创建relationship1和relationship2时,它会崩溃,因为to_user和from_user与不同的模型有关系。如果你帮我解决这个问题,或者推荐另一种方式(不使用django-friendship包)来满足我的要求,我会很高兴。

1 个答案:

答案 0 :(得分:0)

https://github.com/Ry10p/django-Plugis/blob/master/courses/models.py

第52行

<DocumentElement> <PEScoreUpdate> <Badge_x0020_No>105731</Badge_x0020_No> <Last_x0020_Name>Vijaya Kumar</Last_x0020_Name> <First_x0020_Name>Sanjay Kumar</First_x0020_Name> <BOC>Onshore E&amp;C</BOC> <Emp_x0020_Class>White Collar</Emp_x0020_Class> <Site>INGENIERÍA PROJECT Secondment</Site> </PEScoreUpdate> </DocumentElement> 模型的位置也必须在Friend模型之前,因为FriendRequest模型依赖FriendRequest来表示ForeignKey。

示例:

Friend