django - 使用AuthenticationForm的模板标记问题

时间:2011-07-05 19:03:41

标签: django forms authentication login django-templates

我正在尝试在我的网页中使用django.contrib.auth.views.login的每个页面中放置一个登录表单。我在templatetags / mytags.py中创建了一个templatetag,我在其中定义了一个名为get_login的函数,如下所示:

@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 个答案:

答案 0 :(得分:1)

mark_safe返回django.utils.safestring.SafeString的实例,而不是表单,因此这些查找将失败。我认为直接返回表单没有任何问题(例如,django.contrib.auth中的所有通用视图在填充模板时都会这样做)。只需将您的退货声明更改为

即可
return {'formLogin': AuthenticationForm()}

它应该有用。