Django exakte Übereinstimmung der ForeignKey-Werte

8
%Vor%
  1. Ich möchte zwei Fälle implementieren: Satz besteht genau aus drei Token ['I', 'like', 'apples'] . Also Liste von sentence.tokens.all() ist genau ['I', 'like', 'apples'] .

  2. Wie oben, enthält aber Token (Teil des Satzes).

Sentence.objects.annotate(n=Count('tokens',distinct=True)).filter(n=3).filter(tokens__name='I').filter(tokens__name='like').filter(tokens__name='apples') funktioniert nicht, da es auch mit I I I übereinstimmt.

Gibt es eine Möglichkeit, die genaue Menge von Werten in ForeignKey zu filtern?

    
Andrew Fount 13.01.2018, 10:30
quelle

2 Antworten

6

Ah, ich verstehe die Frage jetzt besser. Wenn Sie nur Elemente Ihres und Jay-Codes nutzen, könnte das Folgende ein Ansatz sein. Kann nicht sehr elegant sein. Aber scheint zu funktionieren.

%Vor%

Für genaue Referenz sehen meine Modelle so aus:

%Vor%     
SoundaR 22.01.2018, 04:07
quelle
2

Versuchen Sie, jeden Satz zu erhalten, der die Suchmarker enthält?

Eine flexible (obwohl wahrscheinlich nicht optimale) Art, dies zu tun, könnte sein:

%Vor%

Dies ist äquivalent zur Verkettung der Filter zusammen:

%Vor%     
Jay 21.01.2018 23:57
quelle

Tags und Links