从jquery调用views.py中的函数

Posted

技术标签:

【中文标题】从jquery调用views.py中的函数【英文标题】:call function in views.py from jquery 【发布时间】:2018-12-19 04:17:30 【问题描述】:

我在views.py 中有def main(request) 想要无限滚动。

如何在我的模板中从 jquery 调用这个函数:

    <script>
$(window).scroll(function () 
      if ($(window).scrollTop() + $(window).height() == $(document).height()) 
        //call main
      
    );
  </script>

【问题讨论】:

您进行 AJAX 调用,作为 URL,您可以使用 % url ... %] 【参考方案1】:

在 urls.py 中添加你的 URL

urlpatterns = [url(r'^sample/$', main, name='main_view')]

然后在模板中使用 URL

https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#url

% url main_view %

【讨论】:

【参考方案2】:

在 urls.py 中,您必须添加要调用的 url。可能是这样的:

url(r'^call-main/$', views.call_main, name='call-main')

然后是您编写的函数的 ajax 调用:

$.ajax(
    url: "% url 'call-main' %",
    type: "POST",
    data:  csrfmiddlewaretoken: ' csrf_token ' ,
    success: function () 
        // something here on success
    ,
    error: function () 
       // something here on error
    
);

【讨论】:

已经在 urls.py 中定义了'main',或者我已经覆盖了它? urlpatterns = [ path('', views.main, name='main'), ] 如果您已经在 urls.py 中有它,那么您的 ajax 调用的 url 将是 % url 'main' % 谢谢,但有错误(索引):1 加载资源失败:服务器响应状态为 403(禁止访问) 你需要在 ajax 中传递 csrf 令牌。尝试在ajax中的'type'之后添加:data: csrfmiddlewaretoken:' csrf_token '。 now - Uncaught SyntaxError: Unexpected identifier in success: function () 。 :-)

以上是关于从jquery调用views.py中的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Ajax jQuery 将简单数据发送到 Django 中的views.py?

如何在 Django 中重复调用 views.py 中的函数?

如何从 Django 中的表单调用 Python 函数?

如何使用 jQuery/AJAX 访问 views.py 中的变量?

我们如何将值 - 从 views.py 中的列表 - 传递给 html

django:从模板中的视图调用函数