Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么“质疑”;“绿湾”;“不工作时”;“绿色”;或;海湾;在我的Django看来是吗?_Python_Django_Python 3.x_Django Models_Django Views - Fatal编程技术网

Python 为什么“质疑”;“绿湾”;“不工作时”;“绿色”;或;海湾;在我的Django看来是吗?

Python 为什么“质疑”;“绿湾”;“不工作时”;“绿色”;或;海湾;在我的Django看来是吗?,python,django,python-3.x,django-models,django-views,Python,Django,Python 3.x,Django Models,Django Views,以下是我的看法: def search(request): if request.method == 'GET': try: q = request.GET.get('search_box', None) s_or_l = request.GET.get('s_or_l', None) p_class = request.GET.get('p_class', None) if

以下是我的看法:

def search(request):
    if request.method == 'GET':
        try:
            q = request.GET.get('search_box', None)
            s_or_l = request.GET.get('s_or_l', None)
            p_class = request.GET.get('p_class', None)
            if p_class:
                posts = Listing.objects.filter(title__contains=q, is_live=1, sale_or_lease=s_or_l,
                                               property_class=p_class) | \
                        Listing.objects.filter(street_address__contains=q, is_live=1, sale_or_lease=s_or_l,
                                               property_class=p_class) | \
                        Listing.objects.filter(city__contains=q, is_live=1, sale_or_lease=s_or_l,
                                               property_class=p_class) | \
                        Listing.objects.filter(state__contains=q, is_live=1, sale_or_lease=s_or_l,
                                               property_class=p_class)
            else:
                posts = Listing.objects.filter(title__contains=q, is_live=1, sale_or_lease=s_or_l) | \
                        Listing.objects.filter(street_address__contains=q, is_live=1, sale_or_lease=s_or_l) | \
                        Listing.objects.filter(city__contains=q, is_live=1, sale_or_lease=s_or_l) | \
                        Listing.objects.filter(state__contains=q, is_live=1, sale_or_lease=s_or_l)
            return render(request, 'search/results.html', {'posts': posts, 'q': q})
        except KeyError:
            return redirect('home')
对于
城市
设置为“绿湾”的酒店,以下搜索按预期进行:

绿色

bay

绿湾


但是
green-bay
使用
icontains
而不是
contains
进行不区分大小写的搜索

Listing.objects.filter(city__icontains=q, is_live=1, sale_or_lease=s_or_l)
至于为什么
green
bay
green-bay
有效,而不是
green-bay
,我认为单独的
green
bay
用小写字母出现在你的头衔或街道地址中

除非您使用
icontains