2016-04-19 14 views
0

Ich habe eine Liste von Objekten mit einem Namensattribut, und ich möchte in der Lage sein, es unscharf zu sortieren. Zum Beispiel ist es das, was die Objekte als JSON wie folgt aussehen:Filtern von Objekten durch Fuzzy-Wortsuche

{ 
    'id': 1, 
    'name': 'Test445' 
}, 
{ 
    'id': 2, 
    'name': 'Test444' 
}, 
{ 
    'id': 3, 
    'name': 'Name44' 
}, 

ich einen Namen Suchbegriff eingeben wie Test in der Lage sein wollen, die die ersten zwei Objekte zurückgeben, da Test in beiden Test445 und Test444 .

Gibt es eine Möglichkeit, die ich leicht machen kann?

+0

Wenn Sie wissen, dass es Text und numerisch ist, können Sie 'name.rstrip (string.digits)' –

Antwort

2

können Sie die contains oder startswith Filter verwenden:

Entry.objects.filter(name__contains='Test') 
Entry.objects.filter(name__startswith='Test') 

Für Groß- und Kleinschreibung überprüft, verwenden icontains und istartswith.

+0

Verdammt, das ist genau das, was ich suche! Vielen Dank!. Gibt es eine Möglichkeit, dies so zu machen, dass bei der Suche nicht zwischen Groß- und Kleinschreibung unterschieden wird? Im Augenblick ist "Test" anders als "Test". Wenn ich also nach "Test" suche, gibt es nichts zurück. – Rohinder

+0

@Rohinder sicher, hinzugefügt, um die Antwort. Vielen Dank. – alecxe

Verwandte Themen