Compte tenu des modèles suivants:Django: Filtrage sur l'objet associé, la suppression des doublons du résultat
class Blog(models.Model):
name = models.CharField()
class Entry(models.Model):
blog = models.ForeignKey(Blog)
content = models.CharField()
Je cherche à passer ce qui suit à un modèle:
blogs = Blog.objects.filter(entry__content__contains = 'foo')
result = [(blog, blog.entry_set.filter(content__contains = 'foo'))
for blog in blogs]
render_to_response('my.tmpl', {'result': result}
Cependant, « Blog .objects.filter (...) "renvoie plusieurs fois le même objet Blog si plusieurs entrées correspondantes sont trouvées.
Comment supprimer les doublons? Ou mieux encore, ai-je manqué un moyen plus simple de passer la liste des correspondances aux modèles? L'ajout de .distinct()
vous donnera seulement des résultats distincts.
J'ai essentiellement le même problème (mais plus évident). POURQUOI Y A-T-IL DES DUPLICATEURS EN PREMIER LIEU? Est-ce que 'filter' n'est pas censé RESTREINDRE l'ensemble? Je pense que c'est un bug dans django, n'est-ce pas? C'est un peu comme https://code.djangoproject.com/ticket/12625 – osa