2016-07-26 24 views
1

Ich versuche, eine Freundschaft Beziehung in meinem Projekt mit Hilfe von Django-Freundschaft-Paket zu bauen. Das Problem ist, dass ich die Beziehung zwischen meinem Benutzermodell und meinem eigenen Modell namens Organisation aufbauen soll. Aber wenn ich das versuche, hat sich herausgestellt, dass django-friendship nur die Beziehung zwischen zwei Objekten desselben Typs unterstützt (zum Beispiel vom Typ User-User). Ich habe sogar versucht, die bestehenden Modelle der Django-Freundschaft zu überschreiben, um die Methoden zu ändern, aber ohne Erfolg. Im Moment bin ich auf der Bühne, wo die Freundschaftsanfrage vom Benutzer zur Organisation geschickt wird, aber ich muss sie akzeptieren und da kämpfe ich.Django: Freundschaft Beziehung zwischen verschiedenen Modellen

Freundschaft/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') 

Das Problem ist, dass, wenn es Beziehung1 erstellt und relationship2 stürzt, weil to_user und Von_Nutzer in einer Beziehung mit verschiedenen Modellen sind. Ich würde mich sehr freuen, wenn du mir bei dem Problem hilfst oder einen anderen Weg (ohne das django-friendship-Paket) zu empfehlen, es zu tun, um meinen Anforderungen gerecht zu werden.

+1

kann diese Art der Sache getan werden ganz einfach ohne Drittanbieter-Pakete. Das Erlernen dieser Pakete erfordert mehr Zeit, als es auf eigene Faust zu tun. – e4c5

+0

mm, hast du etwas im Sinn oder etwas, um mich zu empfehlen, Tutorial oder Dokumentation, weil ich ziemlich viel Zeit mit Youtube und anderen Ressourcen verbringen, um zu sehen, ob jemand kann hilf mir aber konnte nichts finden:/ –

+0

[Vielleicht kann dir das weiterhelfen?] (http://stackoverflow.com/a/42756921/7701008) -Bücher – Ry10p

Antwort