Je veux faire un "calendrier" contenant tous les messages de mini blog d'un utilisateur, et tous les utilisateurs qu'il suit. Je souhaite que tous ces posts soient triés par date., Mais comment puis-je 'joindre' les posts, car la relation 'following' est dans une autre table, donc je dois faire une sorte de jointure entre les deux tables, pour prendre les données.Django 'chronologie'
Pour l'instant, dans mon « timeline », il semble que les messages du blog du propriétaire du blog, et l'utilisateur I une requête comme:
blog = New.objects.filter(created_by = request.user)
mais je veux y rejoindre les messages avec les messages des personnes qu'il suit, c'est-à-dire:
following = Relations.objects.filter(initiated_by = request.user)
où Relations est la table 'Follow relation'.
Comment puis-je le faire?
Mes modèles:
class New(models.Model):
post = models.CharField(max_length=120)
date = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(User, blank=True)
objects = NewManager()
class Relations(models.Model):
initiated_by = models.ForeignKey(User, editable=False, related_name = 'initiator')
date_initiated = models.DateTimeField(auto_now=True, editable = False)
follow = models.ForeignKey(User, editable = False, related_name = "follow")
date_follow = models.DateTimeField(auto_now=True, editable = False)
hmm ... je ne peux pas utiliser d'expressions dans les objets Q. il dit: "mot-clé ne peut pas être une expression" – dana
Mon erreur, le point dans relations_set.initiated_by aurait dû être un double trait de soulignement, puisqu'il s'agit d'un argument mot-clé à Q. Je l'ai corrigé. – muksie
maintenant il dit: "Impossible de résoudre mot-clé 'relations_set' dans le champ.Les choix sont: created_by, date, id, post, réponse, vote" signifiant les champs appartenant à la table 'Nouveau'. Il ne laisse pas de requête sur les champs d'une autre table, bien que je fasse une jointure ... :( – dana