コード例 #1
0
def search(request):
    if request.method == 'GET':
        search_query = request.GET.get('search_box', None)
        print(search_query)
        if search_query:
            mylist = search_query.split(' ')
            prod_s = Products_Selling.objects.none()
            prod_l = Products_Leasing.objects.none()
            for elements in mylist:
                search_fields = ['pname', 'description']
                f = search_filter(search_fields, elements)
                filtered = Products_Selling.objects.filter(f)
                if filtered.exists():
                    prod_s = prod_s.union(filtered)
                search_fields1 = ['^pname1', 'description1']
                g = search_filter(search_fields1, elements)
                filtered1 = Products_Leasing.objects.filter(g)
                if filtered1.exists():
                    prod_l = prod_l.union(filtered1)
            if len(prod_s) != 0 or len(prod_l) != 0:
                return render(request, 'buyer/search.html',
                              {'products': prod_s})
            else:
                return redirect('seller:request')
        return redirect('buyer:home')
コード例 #2
0
ファイル: views.py プロジェクト: PickBas/meta-social
 def post(self, request):
     if request.POST.get('query'):
         context = {}
         query = request.POST.get('query')
         search_fields = ['username', 'first_name', 'last_name']
         context['users'] = User.objects.filter(
             search_filter(search_fields,
                           query)).exclude(id=request.user.id)
         search_fields = ['artist', 'title']
         context['music'] = Music.objects.filter(
             search_filter(search_fields, query))
         search_fields = ['name']
         context['communities'] = Community.objects.filter(
             search_filter(search_fields, query))
         return render(request, self.template_name, context)
コード例 #3
0
 def get_queryset(self):
     """
     The main search
     """
     result = Book.objects.none()
     author_q = self.request.GET.get("author")
     title_q = self.request.GET.get("title")
     column_q = self.request.GET.get("column")
     palco_q = self.request.GET.get("palco")
     number_q = self.request.GET.get("number")
     genre_q = self.request.GET.get("genre")
     if any((author_q, title_q, column_q, palco_q, number_q, genre_q)):
         result = Book.objects.all()
         if title_q:
             search_fields = ['title']
             f = search_filter(search_fields, title_q)
             result = result.filter(f)
         if author_q:
             authors = Author.objects.search(author_q)
             result = result.filter(
                 author__in=authors.values_list('pk', flat=True))
         if column_q:
             result = result.filter(column__iexact=column_q.strip())
         if palco_q:
             result = result.filter(palco__iexact=palco_q.strip())
         if number_q:
             result = result.filter(number__iexact=number_q.strip())
         if genre_q:
             result = result.filter(genre__code=genre_q)
     return result
コード例 #4
0
ファイル: views.py プロジェクト: ayan-b/DocuDoc
def search_medical(request):
    queries = request.GET.get('q')
    if queries is not None:
        search_fields = [
            'username', 'address', 'mobile_no', 'emergency_mobile', 'pin_code',
            'other_info'
        ]
        split_queries = queries.split()
        users = None
        for query in split_queries:
            current_users = User.objects.filter(
                search_filter(search_fields, query),
                is_active=True,
                groups__name__in=['doctor', 'pharmacy', 'diagnosis_center'],
            )
            if users is None:
                users = current_users
            else:
                users = users.union(current_users)
        return render(request, 'cases/search-medical.html', {
            'users': users,
            'search_term': queries
        })
    else:
        return render(request, 'cases/search-medical.html')
コード例 #5
0
ファイル: views.py プロジェクト: ayan-b/DocuDoc
 def get_queryset(self):
     query = self.request.GET.get('q')
     search_fields = ['cases_short_name', 'cases_description']
     return Case.objects.filter(
         search_filter(search_fields, query),
         users=self.request.user,
     )
コード例 #6
0
ファイル: models.py プロジェクト: surajit003/mubango
 def get_specific_business(self, name, state):
     query = name
     search_fields = ["name"]
     f = search_filter(search_fields, query)
     qs = self.get_queryset().filter(f)
     result = qs.filter(address__locality__state__name__icontains=state, )
     return result
コード例 #7
0
def do_search(request):

    query = request.GET.get('search_string', "")
    search_fields = [
        '^title',
        'text',
    ]
    f = search_filter(search_fields, query)
    results = Poem.objects.filter(f)  # queryset

    breadcrumbs = [
        {
            "Главная": '/poetry'
        },
        {
            "Поиск": "#"
        },
    ]

    context = {
        "query": query,
        "results": results,
        "breadcrumbs": breadcrumbs,
    }
    #return render(request, 'search/appologise.html', context)
    return render(request, 'search/search_results.html', context)
コード例 #8
0
def tosell(request):
    p = Profile.objects.get(user=request.user)
    m = Products_Selling.objects.filter(seller=p)
    n = Products_Leasing.objects.filter(leaser=p)
    if request.method == 'GET':
        search_query = request.GET.get('search_box', None)
        print(search_query)
        if search_query:
            mylist = search_query.split(' ')
            inst = []
            for elements in mylist:
                search_fields = ['^pname', 'description']
                f = search_filter(search_fields, elements)
                filtered = Products_Selling.objects.filter(f)
                if filtered.exists():
                    inst.append(filtered)
                else:
                    return render(request, 'seller/tosell.html', {
                        'm': m,
                        'n': n
                    })
            return render(request, 'seller/search.html', {'inst': inst})
        else:
            return render(request, 'seller/tosell.html', {'m': m, 'n': n})
    else:
        return render(request, 'seller/tosell.html', {'m': m, 'n': n})
コード例 #9
0
ファイル: views.py プロジェクト: WitchZone/Auction
def search(request):
    query = request.GET['query']
    search_fields = ['title', 'text']
    f = search_filter(search_fields, query)
    lots = Lot_sub.objects.filter(f)
    context = {'lots': lots}

    return render(request, 'auction/search.html', context)
コード例 #10
0
ファイル: utils.py プロジェクト: Varuna-S/herbs-info-webapp
def search(query, searchBy):
    if (searchBy == "none"):
        search_fields = ['plant_name', 'com_name', 'scien_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    elif (searchBy == "division"):
        search_fields = ['div_id__div_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    elif (searchBy == "class"):
        search_fields = ['cls_id__cls_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    elif (searchBy == "order"):
        search_fields = ['ord_id__ord_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    elif (searchBy == "family"):
        search_fields = ['fam_id__fam_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    elif (searchBy == "genus"):
        search_fields = ['gen_id__gen_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    elif (searchBy == "species"):
        search_fields = ['spe_id__spe_name']
        f = search_filter(search_fields, query)
        plant = Plant.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    else:
        search_fields = ['mc_id__mc_name']
        f = search_filter(search_fields, query)
        plant = MedicalConditionRecovery.objects.filter(f)
        plantDesc, plantImg = getOtherInfo(plant)
    plantsInfo = []
    for info, desc, imgs in zip(plant, plantDesc, plantImg):
        print(info.div_id.div_name)
        x = PlantInfo(info.plant_id, info.plant_name, info.scien_name,
                      info.com_name, info.div_id.div_name,
                      info.cls_id.cls_name, info.ord_id.ord_name,
                      info.fam_id.fam_name, info.gen_id.gen_name,
                      info.spe_id.spe_name, desc.description, desc.origin,
                      desc.phytoconstituents, desc.toxicity,
                      desc.contraindications, desc.parts_used,
                      desc.vascular_info, desc.seed_info, desc.flowering_info,
                      desc.used_for_medical_issues, imgs.img, info.slug)
        plantsInfo.append(x)
    return plantsInfo
コード例 #11
0
ファイル: views.py プロジェクト: verjolab/site_xto
def smp_search(request):
    if request.method == "POST":
        smp = request.POST.get("smp")
        search_fields = ['^smp']
        f = search_filter(search_fields, smp)
        filtered = Smp.objects.filter(f)
        for item in filtered:
            print(dir(item))
            break
        return render(request, 'smp_search.html', {"qs": filtered, "s": smp})
    return redirect('/')
コード例 #12
0
 def get_specific_event(self, name, state):
     # includes special and non special events
     query = name
     search_fields = ["name"]
     f = search_filter(search_fields, query)
     qs = self.get_queryset().filter(f).order_by("to_be_held_on")
     result = qs.filter(
         location__locality__state__name__icontains=state,
         to_be_held_on__date__gte=datetime.date.today(),
     )
     return result
コード例 #13
0
ファイル: views.py プロジェクト: zuhairabid/BlogVlog
def search(request):
    hashtag = Hashtag.objects.all().order_by('name')
    referer = request.META.get('HTTP_REFERER')

    try:
        query = request.GET["q"]
    except:
        query = ''

    err = ''
    checklist = [
        '<', 'br', '>', '<br>', '<strong>', '<hr>', 'hr', 'strong', 'p', '<p>',
        '<ul>', 'ul', '<li>', 'li', '<s', '<str', '<Stron', '<h', 'g>', 'on>',
        'ron>', 'tron>', 'strong>', '<l', 'i>', 'li>', '<u', 'l>'
    ]

    if str(query) in checklist:
        err = 'Type something else'
        query = ''

    search_fields = ['title', 'text']
    f = search_filter(search_fields, query)
    filtered1 = Blog.objects.filter(f)

    search_field2 = ['displayname']
    ff = search_filter(search_field2, query)
    filtered2 = UserInfo.objects.filter(ff)

    return render(
        request, 'search.html', {
            'results1': filtered1,
            'results2': filtered2,
            'ref': referer,
            'err': err,
            'hashtag': hashtag
        })
コード例 #14
0
ファイル: views.py プロジェクト: ayan-b/DocuDoc
 def get_queryset(self):
     self.queries = self.request.GET.get('q')
     search_fields = [
         'username', 'address', 'mobile_no', 'emergency_mobile', 'pin_code',
         'other_info'
     ]
     split_queries = self.queries.split()
     users = None
     for query in split_queries:
         current_users = User.objects.filter(
             search_filter(search_fields, query),
             is_active=True,
             groups__name__in=['doctor', 'pharmacy', 'diagnosis_center'],
         )
         if users is None:
             users = current_users
         else:
             users = users.union(current_users)
     return users
コード例 #15
0
    def get_render(request, context: dict) -> render:
        """
        Friends search. Returns rendered response.
        :param request: request
        :param context: dict
        :return: render
        """
        context['matching'] = True
        if not request.POST.get('query'):
            context['matching'] = False
            context['friendlist'] = context['c_user'].profile.friends.all()
            return render(request, 'friends/list.html', context)

        query = request.POST.get('query')
        search_fields = ['username', 'first_name', 'last_name']

        context['f_matches'] = User.objects.filter(
            search_filter(search_fields, query)).exclude(id=request.user.id)

        return render(request, 'friends/list.html', context)
コード例 #16
0
ファイル: views.py プロジェクト: IRIDON/MilitaryLibrary
    def get(self, request, **kwargs):
        data = request.GET.dict()
        keyword = data['search'].lower()
        search_fields = ['name', 'description', 'author']

        context = {
            'keyword': keyword,
        }

        if len(keyword) >= settings.SEARCH_MIN_LENGHT:
            search = filter_items(Book).filter(
                search_filter(search_fields, keyword))

            context.update({
                'search_list': search,
            })
        else:
            context.update({
                'keyword_error': settings.SEARCH_MIN_LENGHT,
            })

        return super(TemplateView, self).render_to_response(context)
コード例 #17
0
ファイル: views.py プロジェクト: PickBas/meta-social
        def post(self, request, custom_url: str) -> render:
            """
            Processing POST request. Rendering search list.
            :param custom_url: user's custom url
            :param request: request
            :return: render
            """

            c_user = request.user

            context = self.get_menu_context('music', 'Музыка')
            context['matching'] = True
            if not request.POST.get('query'):
                context['matching'] = False
                context['music_list'] = c_user.profile.get_music_list()
                return render(request, 'music/search.html', context)
            query = request.POST.get('query')
            search_fields = ['title', 'artist']
            context['c_matches'] = Music.objects.filter(
                search_filter(search_fields, query))

            return render(request, 'music/search.html', context)
コード例 #18
0
def item_list(request):
    if request.method == 'POST':
        query = request.POST.get('search', '')
        search_fields = ['title', 'description', '=item', '=status']
        f = search_filter(search_fields, query)
        object_list = Item.objects.filter(f)
    else:
        object_list = Item.objects.all()
        query = False
    paginator = Paginator(object_list, 8)
    page = request.GET.get('page')
    try:
        items = paginator.page(page)
    except PageNotAnInteger:
        items = paginator.page(1)
    except EmptyPage:
        items = paginator.page(paginator.num_pages)

    return render(request, 'account/homepage.html', {
        'items': items,
        'page': page,
        'search': query
    })
コード例 #19
0
ファイル: views.py プロジェクト: vligas/programas-facyt
def home(request):
    form = forms.SolicitudForm()

    if request.GET:
        q = request.GET.get('q')
        e = request.GET.get('estatus')
        search_fields = ['^nombre', '^apellido', '^cedula', '=id', '^telefono']
        f = []
        f2 = []
        band = False
        if q:
            f = search_filter(search_fields, q)
        if e:
            f2 = Q(estatus=e)

        if f and f2:
            f.add(f2, Q.AND)
        elif f2:
            f = f2
        elif not f:
            band = True

        if band:
            solicitudes = models.Solicitud.objects.filter(~Q(estatus='F'))
        else:
            solicitudes = models.Solicitud.objects.filter(f)

    else:
        solicitudes = models.Solicitud.objects.filter(~Q(estatus='F'))

    solicitudes = solicitudes.order_by('-fecha_creacion')

    context = {
        'form': form,
        'solicitudes': solicitudes,
    }
    return render(request, 'list.html', context)
コード例 #20
0
ファイル: views.py プロジェクト: PickBas/meta-social
        def post(self, request):
            """
            Process post request from community search

            :param request: object with request details
            :type request: :class:`django.http.HttpRequest`
            :return: responce object with HTML code
            :rtype: :class:`django.http.HttpResponse`
            """

            c_user = request.user

            self.context['matching'] = True
            if not request.POST.get('query'):
                self.context['matching'] = False
                self.context[
                    'c_user_communities'] = c_user.profile.communities.all()
                return render(request, 'community/search.html', self.context)
            query = request.POST.get('query')
            search_fields = ['name']
            self.context['c_matches'] = Community.objects.filter(
                search_filter(search_fields, query))

            return render(request, 'community/search.html', self.context)
コード例 #21
0
def search_results(request):
    template_name = "jacket/index.html"

    if request.method == 'POST':
        search_string = request.POST['search']
        if search_string == '':
            context = {
                'jackets': Jacket.objects.all().order_by('-added_on'),
                'source': 'search'
            }
            return render(request, template_name, context)
        search_fields = ['title', 'description', 'location']
        f = search_filter(search_fields, search_string)
        context = {
            'jackets': Jacket.objects.filter(f).order_by('-added_on'),
            'source': 'search'
        }
        return render(request, template_name, context)
    else:
        context = {
            'jackets': Jacket.objects.all().order_by('-added_on'),
            'source': 'search'
        }
        return render(request, template_name, context)
コード例 #22
0
def get_results(query_string, search_fields):
    return MyModel.objects.filter(search_filter(search_fields, query_string))
コード例 #23
0
def get_results(query_string, search_fields):
    return MyModel.objects.filter(search_filter(search_fields, query_string))