2013-02-12 176 views
1

django/django/contrib/admin/templates/admin/login.html中,表單的操作路徑爲{{ app_path }}。這是什麼意思?此外,在change_password_form中根本沒有行動路徑。這個表單如何工作?管理員登錄表單django

回答

3

{{ 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) 

所以{{ app_path }}將與由request.get_full_path()返回的值,這是路徑,其中該請求來自被替換。在這種情況下,它只是您首先從其中加載表單的URL。


對於第二個問題,空字符串的操作指向瀏覽器當前已加載的URL的表單。

+0

ahhh它有很多意義。謝謝! – 2013-02-12 07:44:42

+0

@LimH。很高興清除它:) – 2013-02-12 07:44:59