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