首页 > 解决方案 > 没有呈现响应的 Django 视图

问题描述

我想使用 Button 通过 URL 将 Integer 传递给我的 views.py。我希望views.py 中的这个函数不加载任何新模板或显示HttpResponses。

有没有办法通过按一个按钮来调用这个函数,而不是重新加载一个新页面?

这是 HTML 模板中的按钮:

<a button type="button" class="btn btn-secondary" href="../../frage1f1/1/">1</a>

这是 urls.py 部分:

path('frage1f1/<int:f1>/', views.frage1f1),

这是views.py中的Python方法:

def frage1f1(request, f1):
collection = database["Survey_1"]
collection.update_one({"_id": ObjectId(document_id)}, {"$set":{Frage1: f1}}, upsert= True)
return HttpResponse("Frage 1 beantwortet")

我只想将整数传递给函数而不是重新加载新页面。这可能吗?

我对此很陌生,非常感谢您提供任何建议。

提前致谢。问候

标签: pythondjangoresponse

解决方案


是的,一种解决方案是使用 AJAX,然后向服务器发送请求,但不会重新加载页面。使用 jQuery 的教程

使用 jQuery 的示例(您已包含jQuery 库以使其工作):

内部模板

<a button type="button" class="btn btn-secondary" href="#">1</a>

<script type="text/javascript">
    $(document).on('click', 'a.btn', function(){

        //get the number inside button
        number = $(this).html();

        //send ajax request to the server
        $.ajax({
           url: "../../frage1f1/" + number + "/", 
           success: function(result){}
       });

    });
</script>

推荐阅读