Django Anfügeabfrage Ergebnisse auf Abfrage eingestellt
in einer Ansicht ich bin Bau ich konsultieren müssen mehrere Datenbanken. Was ich tun möchte, die Ergebnisse auf query_set zu suchen, eine andere db-Tabelle.
Ich habe funktionieren mydb1_query_set, was ich jetzt brauchen, ist so etwas wie dieses:
for row in mydb1_query_set:
mydb2_query_set = Mytable.objects.filter(id=row.id)
So, dass ich halten das hinzufügen, um die anfangs leere mydb2_query_set wie ich Durchlaufen. Ich merke, dass es keine QuerySet.append
, so wie ich das erreichen, was ich will? Jede Hilfe viel geschätzt...
Es könnte gut sein, einige Modell-Beschreibungen - weil ich nicht wie die das erzwingen der Abfrage eine Liste, die besonders in einer Schleife. Also je nach dem Ergebnis, das Sie wollen, und was Sie arbeiten mit - es kann möglich sein, aggregieren, Abfragen, mit Anmerkungen versehen, group by oder was auch immer. Aber für etwas wie das, was Sie verwenden es so etwas wie Mytable.Objekte.filter(id__in=Liste(mydb1_query_set)) .. wo mydb1_query_set ist nur eine Liste von ids. Dies kann völlig falsch für Sie - aber ich will nur zeigen Ihnen, for-Schleifen und Listen-Konvertierungen kann nicht die einzige/beste Wahl.
InformationsquelleAutor Darwin Tech | 2011-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
list
statt einerqueryset
, und dann können Sieappend
oderextend
wie Sie es wünschen.AttributeError: 'list' object attribute 'extend' is read-only
Fehler?ahh. ok - ich habe es.
aber das ist langsam, nicht, Sie zwingen den queryset hit-Datenbank, in der jedes Element ?
Ja, es gibt eine db-Abfrage für jedes Element. Ich habe versucht, eine Antwort auf die Frage 'wie kann Sie Anhängen Ergebnisse zu queryset?', nicht die optimale Lösung. Wenn es performance-Probleme, dann könnten Sie versuchen, einen anderen Ansatz, als Sturm schlug im Kommentar oben.
Ich bin mit
fromList = ThingShareLink.objects.filter(from_share_id=share_id) toList = ThingShareLink.objects.filter(to_share_id=share_id) context['object_list'] = list(chain(fromList, toList))
InformationsquelleAutor Alasdair
res:
EDIT: Link zur Dokumentation:
https://docs.djangoproject.com/en/2.1/ref/models/querysets/#operators-that-return-new-querysets
InformationsquelleAutor Maestro Pu