Was entspricht dieser SQL-Anweisung in Django?
SELECT * FROM table_name WHERE string LIKE pattern;
Wie implementiere ich das in Django? Ich habe es versucht
result = table.objects.filter( pattern in string )
Das hat aber nicht funktioniert. Wie implementiere ich das?
python
sql
django
django-models
django-queryset
Aswin Murugesh
quelle
quelle
result = table.objects.filter(string__icontains='pattern')
%a%b%
.result = table.objects.filter(string__contains='a').filter(string__contains='b')
ba
wasLIKE %a%b%
nicht.enthält und icontains von falsetru erwähnt machen fragen wie
SELECT ... WHERE headline LIKE '%pattern%
Zusammen mit ihnen benötigen Sie möglicherweise solche mit ähnlichem Verhalten: Start mit , Start mit , Ende mit , Ende mit
Herstellung
SELECT ... WHERE headline LIKE 'pattern%
oder
SELECT ... WHERE headline LIKE '%pattern
quelle
Suche ohne Berücksichtigung der Groß- und Kleinschreibung nach Zeichenfolge in einem Feld.
quelle
Um die Reihenfolge der Wörter wie in der SQL-Anweisung LIKE '% pattern%' beizubehalten, verwende ich iregex, zum Beispiel:
Zeichenfolgenmethoden sind unveränderlich, sodass sich Ihre Mustervariable nicht ändert und mit. * Sie nach 0 oder mehr Vorkommen eines Zeichens suchen, aber Linien brechen.
Verwenden Sie Folgendes, um die Musterwörter zu durchlaufen:
Die Reihenfolge der Wörter in Ihrem Muster bleibt nicht erhalten, für einige Leute, die funktionieren könnten, aber im Fall des Versuchs, die SQL-ähnliche Anweisung nachzuahmen, verwende ich die erste Option.
quelle
Dies kann mit Djangos benutzerdefinierten Lookups erfolgen . Ich habe die Suche zu einer Django-ähnlichen Suchanwendung gemacht . Nachdem sie die Installation
__like
Lookup mit dem%
und_
Platzhalter aktiviert.Der gesamte erforderliche Code in der Anwendung lautet:
quelle