gpt4 book ai didi

django - django中的redirect_field_value是什么意思

转载 作者:行者123 更新时间:2023-12-05 07:34:59 25 4
gpt4 key购买 nike

这段代码是什么意思?

{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}

最佳答案

上面的 html 片段可用于从 django 应用程序注销 Example in SO当我们使用 django-allauth 库时,redirect_field_value 在表单中用于发布到 URL account_logout 或 account/logout 并且它的关联 View 负责操作

注意:默认情况下 redirect_field_name = 'next' 传递给函数 get_next_redirect_url 以获取重定向 url。

class LogoutView(TemplateResponseMixin, View):

template_name = "account/logout." + app_settings.TEMPLATE_EXTENSION
redirect_field_name = "next"

def post(self, *args, **kwargs):
#self.get_redirect_url method is called by passing the redirect_field_name='next'
#which is used further to logout the authenticated user
url = self.**get_redirect_url()**
if self.request.user.is_authenticated:
self.logout()
response = redirect(url)
return _ajax_response(self.request, response)

def logout(self):
adapter = get_adapter(self.request)
adapter.add_message(
self.request,
messages.SUCCESS,
'account/messages/logged_out.txt')
adapter.logout(self.request)

def get_redirect_url(self):
return (
get_next_redirect_url(
self.request,
**self.redirect_field_name**) or get_adapter(
self.request).get_logout_redirect_url(
self.request))

正如我所见,每个 View (注册、登录、注销)都定义了默认的 rediect_field_name,因此在执行注销操作时,删除上面的标签仍然有效。

<form method="post" action="{% url 'account_logout' %}">
{% csrf_token %}
<!-- {% if redirect_field_value %}
<input type="hidden" name="{{redirect_field_name}}" value="{{redirect_field_value}}">
{% endif %} -->
<button type="submit" class="nav-link btn btn-sm sgp">SignOut</button>
</form>

关于django - django中的redirect_field_value是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49839613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com