Джанго «представление не возвращало объект HttpResponse»

Попробуйте этот

html-код

 <div id="refresh">
    <input type="text" />
    <input type="button" id="click" />
 </div>

jQuery code

 <script>
    $('#click').click(function(){
    var div=$('#refresh').html();
    $.ajax({
        url: '/path/to/file.php',
        type: 'POST',
        dataType: 'json',
        data: {param1: 'value1'},
    })
    .done(function(data) {
if(data.success=='ok'){
        $('#refresh').html(div);
}else{
// show errors.
}
    })
    .fail(function() {
        console.log("error");
    })
    .always(function() {
        console.log("complete");
    });
    });

</script>

php page code path = / path / to / file.php

<?php
   header('Content-Type: application/json');
   $done=true;
   if($done){
       echo json_encode(['success'=>'ok']);
   }
?>
14
задан LoveTW 20 August 2010 в 09:07
поделиться

1 ответ

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

run(request, build)

на:

return run(request, build)

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

24
ответ дан 1 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: