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. Ich möchte 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.)