haben ein Modell "Benutzer" und "Match", dieses zweite Modell wird verwendet, um immer 2 Benutzer zu verbinden. Ich versuche, nach einem "Match" zu suchen, das die zwei spezifischen Benutzer hat.Holen Sie einen Datensatz in exakten ManyToManyField
Die ursprüngliche Idee war, update_or_create zu verwenden, ich entdeckte, dass es nicht möglich war. Also ging ich zu get_or_create, aber jetzt habe ich einen einfachen Filter ausprobiert.
Die maximal Ich habe ist, den Wert des Spiels Modells zu wiederholen (2 Ergebnisse mit dem gleichen Wert erhalten)
-Test 1
query = reduce(operator.or_, (Q(users__user__uuid=item) for item in LIST))
result = Match.objects.filter(query)
Count: 0
-Test 2
test = Match.objects.filter(users__user__in=LIST))
Count: 0
-Test 3
test = Match.objects.filter(users__in=LIST)
Count: 2 (dupliziert)
LIST = FUNKTION:
def list_uuid(user1, user2):
return {str(user.uuid), str(user2.uuid)}