2009-08-10 8 views
0

Je le problème suivant:Sélection des objets liés à django

Mon application ont 2 modèles:

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

À mon avis, je pris tous les objets ActiveList tous = ActiveList.objects. all() et transmis au modèle

Dans le modèle, je parcourt tous les éléments de l'ActiveList et crée un fichier xml qui est utilisé dans mon application client.

la question est:

Comment puis-je interroger les informations sur les revendications qui un utilisateur (par exemple le test, une partie de ActiveList), fait à l'utilisateur qui est en boucle

user2 par exemple, est pris comme ce

{% for item in activeList %} 

{% endfor %} 

utilisateur 2 est un élément dans ce cas

Répondre

1

Ce que vous cherchez à faire appartient plus correctement dans la vue que dans le modèle. Je pense que vous voulez quelque chose comme:

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

Ensuite, vous pouvez les transmettre dans votre modèle, et opérer directement sur eux.

Vous pourriez également envisager de repenser la manière dont vos tables sont liées entre elles. Je pense que les revendications devraient probablement aller directement entre les utilisateurs, et si un utilisateur donné est actif devrait être externe à la relation. Je pense qu'un utilisateur devrait pouvoir revendiquer un jeu avec un utilisateur inactif, même s'il doit attendre que l'utilisateur le réactiver avant que le jeu puisse commencer.

+0

Eh bien, 1) Je suis en train d'obtenir une liste des joueurs actifs, il sera agrégé de la manière suivante Nom d'utilisateur 1 J'ai trouvé plus facile de passer la liste entière au modèle, puis la boucle dans le modèle. Je ne sais pas comment je devrais y passer tous les utilisateurs un par un ... Une idée? 2) Je pense ajouter de l'interactivité au jeu, pensant ainsi avoir des revendications uniquement entre utilisateurs actifs. –

0

Je ne suis pas sûr que je comprends tout à fait votre question, mais je pense que les informations que vous êtes lookin g pour pourrait être ici: http://docs.djangoproject.com/en/dev/topics/db/queries/

Peut-être pourriez-vous clarifier la question si vous n'y trouvez pas de réponse?

Questions connexes