mam kłopoty z wykorzystaniem search_fields
gdy wyrażenie wyszukiwania ma wielu słów i chcę wykonać startswith przeszukiwaniedjango z wieloma słowami
Mam klasy
class Foo(models.Model):
kw = models.CharField(max_length = 255)
...
class FooAdmin(admin.ModelAdmin):
search_fields = ('^kw',)
'^'
wskazuje że chcę przeprowadzić wyszukiwanie startswith. Jeśli szukam KW „foo Fuu” Django wykona zapytanie:
select * from app_foo where `foo`.`kw` like 'foo%' and `foo`.`kw` like 'fuu%'
To zapytanie oczywiście daje zerowe wyniki. Co powinienem zrobić, aby silnik szukał 'foo fuu%'
?
Wydaje Django dzieli zapytanie na przestrzeni więc nie może to być możliwe do zrobienia. Czy rozważałeś opcję pełnotekstową z '@'? –
Czy można zmienić token podziału? –
Nie jestem tego świadomy. Dokumenty mówią: "Zauważ, że dane wejściowe zapytania są dzielone spacjami, więc, po tym przykładzie, obecnie nie jest możliwe wyszukiwanie wszystkich rekordów, w których imię_nazw jest dokładnie" john winston "(zawiera spację)." –