#python #django #unit-testing
#django
Вопрос:
когда я вызываю 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:
Ожидается, что представления Django будут возвращать HttpResponse
объекты. Ваше представление вызывает run
, но оно ничего не возвращает (помните, что функции Python возвращаются None
при отсутствии оператора, явно возвращающего что-то еще). Так что измените эту строку с:
run(request, build)
Для:
return run(request, build)
Конечно, это будет работать, только если run
возвращает HttpResponse
экземпляр.