将搜索结果保存为文本而不是列表

时间:2015-08-31 07:03:13

标签: python django

我正在使用Django 1.8,目前正在开发一个Blog应用程序。当我搜索推文(只是一个名称而不是帖子)时,我想将查询数据库后获得的搜索结果保存为文本而不是列表。我的查看功能如下:

def search(request):
    query = request.GET.get('q','')
    if query:
        qset = (
            Q(text__icontains=query)

            #Q(hashes__icontains=query)
            #Q(artist__icontains=query)
        )
        results = Tweet.objects.filter(qset).distinct()

    else:
        results = []
    number_of_results = len(results)

    search_item = query
    returned_items = []
    for res in results:
        text = res.text
        returned_items.append(text)

    returns = returned_items[:]

    search = Search(search_item=search_item,returns=returns)
    search.save()

    context =    {'query':query,'results':results,'number_of_results':number_of_results,'title':'Search results for '+request.GET.get('q','')}
    return render_to_response("tweets/search.html",context,context_instance=RequestContext(request))

另外,我在数据库中搜索表的快照如下所示:Search table

请帮帮我朋友。

2 个答案:

答案 0 :(得分:1)

您应该使用逗号分隔值加入返回的列表。这将返回字符串。

returns = ', '.join(returned_items)

答案 1 :(得分:0)

这段代码设置返回列表:

returns = returned_items[:]

如果要访问第一个字符串,请将其设置为returned_items [0]。如果要加入列表中的所有字符串,请使用join()

returns = "".join(returned_items)