我在django中爲我的頁面編寫了一個小型搜索引擎。如何在django中執行此搜索邏輯
我的查詢代碼:
sterm = request.GET.get('searchterm')
books = Book.objects.filter(title__iregex=r"\y{0}\y".format(sterm))
一個與此代碼的問題是,如果我搜索"python test"
,這是給我的只有這在他們的頭銜有"python test"
書。但我也需要其書名只有"python"
或"test"
的圖書。我知道,我可以使用Q
。但我需要一些有效的查找,我在想這樣的邏輯:
sterms = sterm.split()
if len(sterms) == 1:
books = Book.objects.filter(title__iregex=r"\y{0}\y".format(sterm))
else:
for each in sterms:
## how can I gather here all Q's?
#then this?
books = Book.objects.filter("gathered Q's with |")
我怎麼能收集Q
過濾器,然後通過它來查詢?我對這個邏輯還好嗎?還是有更高效和更酷的方式來做到這一點?
您應該在文檔中採取一些措施:https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects –
我錯過了粘貼另一個鏈接:P https://bradmontgomery.net/blog/adding-q-objects-in-django/ –
@limelights真棒,這是我需要感謝花花公子 – doniyor