Django «представление не возвращало объект HttpResponse». - PullRequest
14 голосов
/ 20 августа 2010

когда я вызываю runDelete , тогда он вызывает run, так почему «представление не вернуло объект HttpResponse»?

спасибо:)

views.py

def run(request, build):
    run_list = []   
    target_dict = {}
    target_num = 0
    build_id = 0
    all_run_list = TestRun.objects.all().order_by('id')
    for run in all_run_list:
        build_version = run.build.version
        build_number = run.build.number
        run_build = build_version + '.' + build_number
        if (build==run_build):
            run_list.append(run)
    return render_to_response('run.html', {'run_list': run_list})

def runDelete(request):
    run_list = request.POST.getlist('var_delete')
    build_id = request.POST.get('build_id')
    for run2 in run_list:
        run2 = int(run2)
    build_id = int(build_id)
    build_obj = Build.objects.get(id=build_id)
    build_version = build_obj.version
    build_number = build_obj.number
    build = build_version + '.' + build_number
    run(request, build)

1 Ответ

24 голосов
/ 20 августа 2010

Представления Django должны возвращать HttpResponse объекты. Ваше представление вызывает run, но ничего не возвращает (помните, что функции Python возвращают None при отсутствии оператора, явно возвращающего что-то еще). Поэтому измените эту строку с:

run(request, build)

до:

return run(request, build)

Конечно, это будет работать, только если run вернет экземпляр HttpResponse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...