Folgend Benutzer wie Twitter in Django, wie würdest du es tun?

7

Ich spiele mit Beziehungen in Django / Python und ich frage mich, wie Sie eine Beziehung zwischen einem Benutzer und seinen Followern und einem Follower zu den Benutzern, denen er folgt, erstellen würden.

Würde gerne Ihre Meinung lesen ...

    
Tony Kyriakidis 15.05.2012, 13:44
quelle

3 Antworten

19

Zuerst sollten Sie verstehen, wie Sie zusätzliche Informationen über Benutzer speichern können . Es erfordert ein anderes Modell, das eine Beziehung zu einem Benutzer hat, das "Profil" -Modell.

Dann könnten Sie ein M2M-Feld verwenden. Wenn Sie django-nervig verwenden, können Sie Ihren Benutzer definieren Profilmodell als solches:

%Vor%

Und benutze es als solches:

%Vor%

Beachten Sie auch, dass Sie Apps wie django-subscription , django-actstream , django-social ( schwieriger zu benutzen wahrscheinlich) ...

Vielleicht möchten Sie sich die django-Pakete für Benachrichtigungen ansehen und Aktivitäten , da sie alle ein Follow-up / Abonnement-Datenbankdesign erfordern.

    
jpic 15.05.2012, 14:48
quelle
3

So würde ich es machen:

%Vor%

In der Shell

  

In [1]: t = Hochtöner ()

     

In [2]: t.save ()

     

In [3]: f = Hochtöner ()

     

In [4]: ​​f.save ()

     

In [5]: r = Beziehung ()

     

In [6]: r.who = t

     

In [7]: r.whom = f

     

In [8]: r.save ()

     

In [18]: Relationship.objects.all () [0] .who.id
  Aus [18]: 1L

     

In [19]: Relationship.objects.all () [0] .whom.id
  Aus [19]: 2L

    
zubinmehta 15.05.2012 15:04
quelle
1

Bearbeiten: Es ist sinnvoller, ManyToManyField zu verwenden, wie der Kommentator vorschlägt. Benutzer können 0-x Benutzerfolger haben und Benutzer können 0-x Benutzern folgen.

Zypern

Ohne in Code zu gehen, nicht viel mehr zu sagen.

    
patrickn 15.05.2012 14:15
quelle