其中django / django / contrib / admin / templates / admin / login.html
,表单的动作路径为{{ app_path }}
。这是什么意思?此外,在 中change_password_form
,根本没有动作路径。表格如何仍然有效?
问问题
991 次
1 回答
5
{{ app_path }}
是一个模板变量,将替换为从视图传递给它的上下文。在这种情况下,视图位于django/contrib/admin/sites.py
:
@never_cache
def login(self, request, extra_context=None):
"""
Displays the login form for the given HttpRequest.
"""
from django.contrib.auth.views import login
context = {
'title': _('Log in'),
'app_path': request.get_full_path(),
REDIRECT_FIELD_NAME: request.get_full_path(),
}
context.update(extra_context or {})
defaults = {
'extra_context': context,
'current_app': self.name,
'authentication_form': self.login_form or AdminAuthenticationForm,
'template_name': self.login_template or 'admin/login.html',
}
return login(request, **defaults)
so{{ app_path }}
将替换为返回的值request.get_full_path()
,即请求来自的路径。在这种情况下,它只是您首先从中加载表单的 URL。
对于第二个问题,空字符串的操作将表单指向浏览器当前已加载的 URL。
于 2013-02-12T07:41:33.290 回答