Django Filter Queryset auf "Tupel" von Werten für mehrere Spalten
Posted: 24 Feb 2025, 01:01
Sag, ich habe ein Modell: < /p>
. Wenn ich dann jeden auswählen wollte, dessen Vorname in First_List < /code> ich ausführen konnte: < /p>
Wenn ich die Suche nach oder Style anstelle der und Stilsuche durchführen wollte, kann ich dies mit Q Objekten tun : < /p>
Objekte zurückgeben, für die (Person.firstname, Person.lastName) in ZIP (First_names, last_names) ist. D.h. Ich möchte jemanden namens Bob Williams oder Rob Williamson zurückbekommen (aber nicht jemanden namens Bob Williamson oder Rob Williams). < /p>
In meinem tatsächlichen Anwendungsfall hätte First_list < /code> und last_list < /code> beide ~ 100 Elemente. < /p>
Im Moment muss ich dieses Problem in einer Django -App lösen. Aber ich bin auch neugierig auf den besten Weg, um dies in einem allgemeineren SQL -Kontext zu bewältigen. < /P>
Danke! (Und bitte lassen Sie mich wissen, ob ich etwas klären kann.)
Code: Select all
Class Person(models.Model):
firstname = models.CharField()
lastname = models.CharField()
birthday = models.DateField()
# etc...
< /code>
und sagen, ich habe eine Liste mit 2 Vornamen: First_list = ['Bob', 'Rob'] < /code> und ich habe eine Liste mit 2 Nachnamen : last_list = ['Williams', 'Williamson']
Code: Select all
Person.objects.filter(firstname__in=first_list)
< /code>
Und wenn ich jeden auswählen wollte, dessen Nachname in last_list < /code> war, könnte ich es tun: < /p>
Person.objects.filter(lastname__in=last_list)
< /code>
So gut, so gut. Wenn ich beide Einschränkungen gleichzeitig ausführen möchte, ist das einfach ... < /p>
Person.objects.filter(firstname__in=first_list, lastname__in=last_list)
Code: Select all
Person.objects.filter(Q(firstname__in=first_list) | Q(lastname__in=last_name))
< /code>
Aber was ich im Sinn habe, ist etwas Subtileres. Was ist, wenn ich nur einen Queryset zurückgeben möchte, der bestimmte Kombinationen von First und Nachnamen zurückgibt? D.h. [url=viewtopic.php?t=14917]Ich möchte[/url] die Person
In meinem tatsächlichen Anwendungsfall hätte First_list < /code> und last_list < /code> beide ~ 100 Elemente. < /p>
Im Moment muss ich dieses Problem in einer Django -App lösen. Aber ich bin auch neugierig auf den besten Weg, um dies in einem allgemeineren SQL -Kontext zu bewältigen. < /P>
Danke! (Und bitte lassen Sie mich wissen, ob ich etwas klären kann.)