从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 中的函数?
如何使用 jQuery/AJAX 访问 views.py 中的变量?