首页 > 解决方案 > 为什么即使渲染返回,它也不返回 HttpResponse?

问题描述

我的 html 模板和 urlpatterns 已检查正常,但它只是没有响应任何内容并说这样的话The view search.views.search_list didn't return an HttpResponse object. It returned None instead.那么有什么问题?

如果我返回 HttpResponse('hello world'),它仍然只是告诉我什么都不返回?

def search_list(request):
    #return render(request, '/', locals())

    start_time = time.time()
    searched = True
    keywords = request.GET.get('q')
    print(keywords)
    message = ''
    if not keywords:
        return redirect('/')
    #words = keywords.split('')
    word = keywords
    post_list = Poem.objects.filter(Q(author_name__contains=word) | Q(model_name__contains=word) | Q(poem_name__contains=word) | Q(dynasty__contains=word) | Q(content__contains=word))
    print(post_list)
    try:
        old_word = SearchHotspot.object.get(word=word)
    except:
        new_word = SearchHotspot()
        new_word.word = word
        new_word.count += 1
        new_word.save()
    else:
        old_word.count += 1
        old_word.save()
    limit = 10
    paginator = Paginator(post_list, limit)
    page = request.GET.get('page')
    try:
        posts = paginator.page(page)
    except PageNotAnInteger:
        posts = paginator.page(1)
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)

    end_time = time.time()
    load_time = end_time - start_time

    title = keywords + "- 众里寻他千百度"
    content = "蓦然回首,那人却在灯火阑珊处。"

    return render(request, 'search/result.html', locals())

标签: pythondjangoweb

解决方案


不确定您的请求如何,但是如果您进入 if 语句“如果不是关键字”,则说明“返回重定向”,这将导致此错误。正确的方法是HttpReponseRedirect


推荐阅读