2011-07-05 19 views
0

我想在我的網頁中的每個頁面中使用django.contrib.auth.views.login放入登錄表單。我創建了一個templatetags templatetag/mytags.py,在那裏我定義了一個名爲get_login至極功能如下:django - 使用AuthenticationForm的模板標籤問題

@register.inclusion_tag('registration/login.html', takes_context=True) 
def get_login(context): 
    ... 
    return {'formLogin': mark_safe(AuthenticationForm())} 

...在base.html文件:

{% load mytags %}{% get_login %} 

現在的問題是該模板(registration/login.html)不識別{{ formLogin.username }}{{ formLogin.password }} ...等等。

我缺少什麼?

回答

1

mark_safe返回django.utils.safestring.SafeString的實例,而不是表單,因此這些查找將失敗。我不認爲直接返回表單有什麼不妥(例如,當填充模板時,django.contrib.auth中的所有通用視圖都是如此)。只需將您的退貨聲明更改爲

return {'formLogin': AuthenticationForm()} 

它應該可以工作。