2009-08-10 8 views
0

Ich habe folgendes Problem:Auswahl verwandte Objekte in django

Meine Anwendung haben 2 Modelle:

1)

class ActiveList(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    updatedOn = models.DateTimeField(auto_now=True) 
    def __unicode__(self): 
     return self.user.username 

''' 
GameClaim class, to store game requests. 
''' 
class GameClaim(models.Model): 
    me = models.ForeignKey(ActiveList, related_name='gameclaim_me') 
    opponent = models.ForeignKey(ActiveList, related_name='gameclaim_opponent') 

Aus meiner Sicht habe ich alle Active alle = ActiveList.objects Objekte. all() und übergab es an die Vorlage

In Vorlage Ich bin durchschleifen jedes Element in der ActiveList, und erstellen Sie eine XML-Datei, die auf meiner Client-Anwendung verwendet wird.

die Frage ist:

Wie kann ich die Informationen über die Ansprüche Abfrage, die ein Benutzer (zB Test, Teil von Active), an den Anwender, die unter Schleife ist

benutzer2 zB genommen wie diese

{% for item in activeList %} 

{% endfor %} 

Benutzer 2 ist ein Element, in diesem Fall

Antwort

1

Was Sie tun, gehört mehr in die Ansicht als die Vorlage. Ich glaube, Sie wollen so etwas wie:

claimer = User.objects.get(name='test') 
claimed_opponents = User.objects.filter(gameclaim_opponent__me__user=claimer) 

Dann können Sie diese in Ihre Vorlage gehen und arbeiten direkt auf sie.

Sie können auch überdenken, wie Ihre Tabellen zueinander in Beziehung stehen. Ich denke, Behauptungen sollten wahrscheinlich direkt zwischen Benutzern ausgetauscht werden, und ob ein bestimmter Benutzer aktiv ist, sollte außerhalb der Beziehung liegen. Ich denke, ein Benutzer sollte ein Spiel mit einem inaktiven Benutzer beanspruchen können, auch wenn er warten muss, bis der Benutzer wieder aktiviert wird, bevor das Spiel beginnen kann.

+0

Nun, 1) Ich versuche, eine Liste der aktiven Spieler zu bekommen, wird es Benutzername 1 auf folgende Weise zusammengefasst werden Ich fand es einfacher, die gesamte Liste an die Vorlage zu übergeben, und dann Schleife es innerhalb der Vorlage. Ich bin mir nicht sicher, wie ich jeden einzelnen Benutzer eins nach dem anderen übergeben soll ... Irgendeine Idee? 2) Ich denke, um etwas Interaktivität zum Spiel hinzuzufügen, so denken, Ansprüche nur zwischen aktiven Benutzern zu haben. –

Verwandte Themen