我想在验证用户身份后从模板中的HTML文件调用views.py中的方法。我不知道在这里应该使用什么HTML语法。我认为表单或按钮不起作用,因为我想简单地调用该方法而不让用户单击任何按钮。
{% block content %}
{% if user.is_authenticated %}
<!-- I want to call the method here-->
<div id="user-logout">Hi {{ user.username }}! <a href="{% url 'logout' %}">logout</a></div>
{% block chess_page %}
{% endblock %}
<!-- else redirect to the login page -->
{% else %}
<meta http-equiv="REFRESH" content="0; {% url 'login' %}">
{% endif %}
{% endblock %}
答案 0 :(得分:1)
我可以看到的唯一方法是编写一个自定义模板标签(您可能应该在用例中提出一个特定的问题)或在页面加载后使用Ajax和POST之类的方法来做使用Javascript。您可能想要执行以下操作:
此示例使用JQuery
模板代码
$(document).ready(function(){
$.ajax({ url: "{% url 'thing_you_want_2_do' %}",
context: document.body,
method : "POST",
success: function(){
alert("done");
}});
});
以上代码对指定的URL执行POST请求。
urls.py
path('/todoitem', views.thing_you_want_to_do, name='thing_you_want_2_do'),
这只是将请求路由到您要处理的特定Python代码块。
查看代码
@require_http_methods(["POST"])
def thing_you_want_to_do (request):
#do thing you want to do when the page loads
return #whatever you want to return
这可以完成您想做的任何事情。