【问题标题】:call function in views.py from jquery从jquery调用views.py中的函数
【发布时间】: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 ... %]

标签: python jquery django django-templates django-views


【解决方案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 () 。 :-)
    猜你喜欢
    • 2019-03-27
    • 1970-01-01
    • 2022-11-10
    • 2021-07-14
    • 1970-01-01
    • 2018-02-21
    • 2018-12-25
    • 2012-02-23
    • 2018-08-11
    相关资源
    最近更新 更多