python - render() 不渲染模板

标签 python django

我有一个简单的 Web 应用程序,其中包含两个按钮,每个按钮都通过 jQuery 发出发布请求。我在我的 views.py 中监听 POST 请求并根据按下的按钮我执行某些逻辑。例如:

if request.method == 'POST':
    foo = request.POST['SELECTED'] #the value of the button pressed
    if foo == 'I got gas!':
        try:
            return render(request, 'gogetgas/toosoon.html')
        except Exception as e:
            print e
...

这只是逻辑的一个片段,但它是相关的部分。当我调试它时,它到达 return render()并执行所有逻辑。但是它没有加载我的 toosoon.html模板。控制台中没有抛出任何错误,也没有打印任何异常。 Chrome 的控制台和 Django 控制台分别使用 jQuery 日志和 Python 打印输出这是一个成功的 POST 请求。

为什么它不显示我的页面?

编辑

我的 jQuery 代码按照要求(我很欣赏它有点迂回,但我的 friend 写了它,我不想在一切正常工作之前修剪它):

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
<script type="text/javascript">
    $(document).ready(function()
    {
        //
        $('form').submit(function(e){
            return false;
        });


 $("form input[type='button']").one('click', function(e){

    var selected = $(this).val();

    console.log(selected);

    submitForm(selected);

 });


 function submitForm(sel){

     var selected =sel;
     console.log(selected);

     $.post("/", {selected: sel},function(){

     }).done(function(){
       console.log('success');
     }).fail(function(err){
       console.log(err.responseText);
     });


 }

    });
</script>

我错误地将其称为某种模板。这是一个简单的 HTML 文件,可在 <project root>/templates/gogetgas/toosoon.html 中找到。 .

回答

为了进一步澄清 Daniel Roseman 下面的答案,我必须使用 jQuery 做一些事情来加载响应。我很困惑并认为 Django render会以某种方式加载页面,而不需要 jQuery。我创建了一个变量来发布 ajax 请求,然后在 .done 上发布。回调我清空主体并用数据填充它:

var xhr = $.post("/", {selected:selected});

xhr.done(function(data){
    console.log('done');
    $('body').empty().html(data);
 });

最佳答案

您的 jQuery 脚本中没有任何可以显示 POST 结果的代码。 AJAX 查询将异步获取数据,但您实际上需要对浏览器返回的任何内容执行某些操作。

关于python - render() 不渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22253844/

相关文章:

python - 在 django 迁移期间处理数据?

python - 从图像中获取两个图像,图像中有两个图像粘贴在一个文档中 - Python/C++

javascript - 将 Div 附加到 Th id/django forloop 计数器问题

python - 在 matplotlib 图上绘制裁剪后的背景图像

jquery - 如何在 HTML 中存储数据库项目列表?

django - 如何使用 Django 模板检查多个值?

sql - 在postgresql中如何声明一个引用表但也可以接收null并可以通过Django模型保存的列

django - Nginx、uwsgi、django、ubuntu 16 带有静态文件的问题

python - 如何使用 HTML 表单更新我的购物车和产品 ID?

python - 检查目标 : expected dense_2 to have 2 dimensions, 但获得形状为 (1, 1226, 2) 的数组时出错