在django/django/contrib/admin/templates/admin/login.html
中,表单的action路径为{{ app_path }}
。这是什么意思?此外,在 change_password_form
中,根本没有操作路径。表格如何仍然有效?
最佳答案
{{ app_path }}
是一个模板变量,将被从 View 传递给它的上下文替换。在本例中, View 位于 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)
因此 {{ app_path }}
将被替换为 request.get_full_path()
返回的值,这是请求来自的路径。在本例中,它只是您最初加载表单的 URL。
对于第二个问题,空字符串的操作将表单指向浏览器当前加载的 URL。
关于django - 管理员登录表单 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14827599/