2

我对 Django 很陌生,我正在尝试做一些我似乎不明白如何做的事情。现在,我使用 javascript onclick 显示/隐藏页面元素。我显示的内容包括一个下拉框。我想做的是调用我编写的python客户端函数,传递选择,从而对数据库进行更改。该函数已编写并且我有前端工作,但我不明白如何获取提交按钮并让 javascript 不仅显示/隐藏元素,而且最终调用此函数。

我不希望页面刷新,到目前为止我的研究让我相信我需要使用 AJAX 和某种 POST。不太确定。我对这种事情没有经验。我想知道我是否走在正确的轨道上或某个地方可能会帮助我到达那里/某种指南。

4

2 回答 2

3

你是对的,你需要使用 AJAX。这是一个简单的例子:

模板.html

<button type="button" id>Click Me!</button>


{% block inline_js %}
    <script type="text/javascript">
    $(document).ready(function () {
        $(document).on("click",'#button',
            function() {
                $.ajax({
                    type: "POST",
                    data: { action: "delete"},
                    success: function(data){}

</script>

您可以将 AJAX 函数直接放在视图中。如果您在 AJAX 调用的 'url' 参数中没有放置任何内容,它将调用自身(调用它的视图)。

视图.py

def post(self,request, *args, **kwargs):
#Add a AJAX request check. If it is AJAX, redirect to AJAX function
    if self.request.is_ajax():
        return self.ajax(request)

#===========================================================================
# AJAX
#===========================================================================
def ajax(self, request):
    response_dict= {
        'success': True,
    }
    #Your SQL DROP code here...


    return HttpResponse(simplejson.dumps(response_dict), mimetype='application/json')
于 2013-06-17T13:30:47.753 回答
1

您必须使用 JavaScript 发出 POST 请求,并在服务器上接收它。基本思想:您使用XMLHttpRequest$.ajax(如果您的项目使用 jQuery)从客户端发送数据(可能是 JSON )。理论上,我也不熟悉 Django。但是根据文档Django默认不能处理AJAX,所以它似乎是你需要的:http ://www.dajaxproject.com/dajaxice/

于 2013-06-15T19:36:24.873 回答