Пример #1
0
def search(request):
    return redirect('registration-signup')
    if request.method == 'GET':
        input_q = request.GET.get("q","")
        q = name_seperate(input_q)
        default_num = 10
        #results = personal_ranking(s_qs=SearchQuerySet().auto_query(q).models(*TYPE['all']), user=request.user)        
        # Find location
        latitude, longitude = get_user_location(request)        
        search_city = request.session.get('search_city', 'Default')
        
        spatial_results = spatial_ranking(personal_ranking(SearchQuerySet().models(*TYPE['spatial']).filter(searchable=True), request.user), latitude, longitude).auto_query(q).load_all()[:default_num]
        spatial_results = get_clear_search_results(spatial_results)        
        
        results = personal_ranking(SearchQuerySet().models(*TYPE['non_spatial']).filter(searchable=True), request.user).load_all().auto_query(q)[:default_num]
        results = get_clear_search_results(results)
        
        results.extend(spatial_results)
        rtn = []
        for result in results:
            if result.pk not in request.user.get_profile().blocked_by_user_set:
                rtn.append(result)
                
        return render(request, 'search_result.html', {
            'results':rtn,
            'search_city':search_city,
            'q': input_q,
            'default_num': default_num,
        })
    else:
        return HttpResponseRedirect(slugreverse(request.user, "user-profile", args=[request.user.id]))
Пример #2
0
Файл: ajax.py Проект: gage/proto
def auto_complete_name(request, model):

    q = request.GET.get('q', None)
    q = name_seperate(q)
    rid = request.GET.get('rid', '')
    if q is None or q == '':
        return HttpResponse(json.dumps({'error':'query empty'}), mimetype="application/json")
    q = q.lower()
    query_list = q.split(" ")
    results = None
    for q_o in query_list:
        if q_o:
            if not results:
                results = personal_ranking(s_qs=SearchQuerySet().filter(name__startswith=q_o), user=request.user)
                # results = SearchQuerySet().filter(name__startswith=q_o)
            else:
                results = results.filter(name__startswith=q_o)

    results = results.models(*TYPE[model])[:5]
    json_response = []
    for result in results:
        score_field = '%s_d'%request.user.id
        score = result.__dict__[score_field] if score_field in result.__dict__ else 'x'
        try:
            img_url = result.object.get_display_photo().image40x40.url
        except:
            img_url = 0
        if rid:
            if result.object.place.pk == rid:
                item = {
                    'value': result.pk,
                    'data': '%s' % (result.object.name),
                	'score': '%s' % (score),
                	'img_url': '%s' % (img_url),
                }
            else:
                continue
        else:
            item = {
                'value': result.pk,
                'data': '%s' % (result.object.name),
                'score': '%s' % (score),
                'img_url': '%s' % (img_url),
            }

        json_response.append(item)
        # json_response.sort(key=lambda obj: obj['data'].lower().startswith(q),reverse=True)

#   return HttpResponse(json.dumps(json_response), mimetype="application/json")
    result = '\n'.join(["%s|%s|%s|%s" % (item['data'],item['value'],item['score'],item['img_url']) for item in json_response])
    return HttpResponse(result, mimetype="application/html")