Ich habe ein Django-Modell Author
, mit einem Feld namens bekam name
genannt, die nicht in Nachname/Vorname aufgespalten wird:Django: Suche nach Anfangsbuchstaben einzelner Wörter in einer Phrase?
class Author(models.Model):
name = models.CharField(max_length=200, unique=True)
Zum Beispiel habe ich einen Autor Eintrag mit dem Namen ‚Donald Knuth‘ haben .
Nun möchte ich nach Namen fragen, mit istartswith am Anfang jedes Wortes innerhalb der name
Feld.
Also ich würde gerne in der Lage sein mit 'Kn
' abzufragen, und erhalten 'Donald Knuth
' zurück.
Etwas wie:
authors = Author.objects.filter(name__word__istartswith="Kn")
Ist das möglich in Django?
Vielen Dank! Dies ist genau das, was ich brauche, außer dass "(^ | \ s)% s" nur am Anfang des Namens übereinstimmt. Irgendeine Idee, wie ich es den Anfang jedes Wortes innerhalb des Namens zusammenbringen lassen kann? Ich denke, "\ b" sollte irgendwo beteiligt sein ... – AP257
Also "(^ |)% s" funktioniert, aber "(^ | \ b)% s" und "(^ | \ b)% s" don t. Neugierig. – AP257
Was ist ein "\ b"? "\ s" ist eine POSIX-Zeichengruppe für Leerzeichen. Welche DB benutzen Sie? Verwenden Sie die alternative Syntax: r "(^ | [[:: space:]])% s"% text – lqc