2016-07-26 7 views
1

Я пытаюсь построить отношение дружбы в моем проекте, используя пакет django-friendship. Проблема в том, что мне нужно построить отношения между моей моделью пользователя и моей собственной моделью под названием «Организация». Но когда я пытаюсь это сделать, оказалось, что django-friendship поддерживает только связь между двумя объектами одного типа (например, типа User-User). Я даже пытался переопределить существующие модели в django-дружбе, чтобы изменить методы, но без каких-либо успехов. На данный момент я нахожусь на сцене, что запрос друга отправляется от пользователя к Организации, но мне нужно принять его, и там я буду бороться.Django: отношение дружбы между различными моделями

дружба/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

Такого рода вещи можно сделать довольно легко без сторонних пакетов. Изучая эти пакеты, требуется больше времени, чем делать это самостоятельно – e4c5

+0

мм. У вас есть что-то в виду или что-то порекомендовать мне, учебник или документацию, потому что я трачу довольно много времени на просмотр youtube и других ресурсов, чтобы узнать, может ли кто-нибудь помогите мне, но ничего не смог найти:/ –

+0

[Может быть, это может вам помочь?] (http://stackoverflow.com/a/42756921/7701008) -cheers – Ry10p

ответ