首页 > 解决方案 > 从 Django 中的变量列出会话中使用的所有值

问题描述

我做了一个简单的搜索视图来根据这些输入进行查询。

def search(request):
    try:
        query_x = request.GET.get('query_x')
        query_y = request.GET.get('query_y')
        points_returned = request.GET.get('points_returned')
        distance_condition = request.GET.get('distance_condition')

        object_list = Points.objects.filter(
            geom_point__distance_lte=('POINT({0} {1})'.format(query_x, query_y), D(km=10))
            ).order_by('geom_point')[:int(points_returned)]

        request.session['query_x'] = query_x

        return render_to_response('search_results.html', {'object_list': object_list})
    except KeyError:
        return render_to_response('home.html')

此搜索将被多次使用(可能具有相同的值),因此我想保存并列出用户用于执行查询的所有输入(对于 query_x 和 query_y 变量)。我已经实现了在模板中获取值,但是当我放入{{request.session.query_x}}模板以查看结果时,只出现最后一个输入 - 我需要获取所有使用的值。

标签: djangodjango-views

解决方案


无论您在哪里调用 search 函数,您都可以在调用 search 之前创建一个 list 的会话变量 request.session['query_x'] = list()。而不是这样做,request.session['query_x'] = query_x您可以简单地使用request.session['query_x'].append(query_x)并访问所有query_xrequest.session['query_x']


推荐阅读