Почему он не возвращает HttpResponse, хотя render возвращает?

Мой 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())

Не уверен, как выглядит ваш запрос, но если вы попадете в оператор if "if not keyword", вы укажете "return redirect", что вызовет эту ошибку. Правильным методом является HttpReponseRedirect

Вернуться на верх