首先,前端已實現搜索功能頁面, 我們直接寫后台邏輯:
Q()可以實現 邏輯或的判斷, name_ _ icontains 表示 name字段包含搜索的內容,i表示忽略大小寫。
from django.db.models import Q
all_orgs = CourseOrg.objects.all() search_keywords = request.GET.get("keywords", "") if search_keywords: all_orgs = all_orgs.filter(Q(name__icontains=search_keywords) | Q(desc__icontains=search_keywords))
需要注意的是:
、Q對象可以與關鍵字參數查詢一起使用,不過一定要把Q對象放在關鍵字參數查詢的前面。
# 正確: Book.objects.get( Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)), title__startswith='P') # 錯誤: Book.objects.get( question__startswith='P', Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)))