我想通了。如果身份验证应用程序使用复杂模板呈现默认身份验证模板视图,则会发生身份验证测试中失败的测试。 auth应用程序使用您的应用程序使用的模板测试自己。我已将默认设置更改为与我的网站其他部分相同的模板。
我在模板中犯的错误:
- 变量的使用和反向未通过身份验证的应用程序称为网址。 在我的情况下,它在auth模板中的用户配置文件信息(当你没有登录当地时不可用)和在auth应用程序测试中导致错误的不良URL反向标记。
当我放弃了基本认证模板上无用的所有内容时,所有认证测试都再次成功。因为这个
我学到了一课:
它是有用的在你的模板分离内容和结构。这很容易通过创建一个base.html模板文件,它只定义了一个基本的HTML页面结构并包含一堆内容块。请参阅下面的示例代码:
下一步是创建一个base_content.html,它将扩展base.html并仅定义内容用于将内容呈现到页面中的块。每个页面都需要基本简单的内容。
在您的应用程序,你延长base_content.html和填充剩余的空的内容块或用新的替代他们.. 利用该技术,很容易创造出延长base_content.html 或基地AUTH模板。 html的非常基本的认证模板,所以大部分(无用的)内容都被忽略了。
例如base.html文件
<body>
<div id="header">
{% block mainmenu %}{% endblock %}
</div>
<div id="userbar">
{% block userbar %}{% endblock %}
</div>
<div id="bigcontent">
{% block bigcontent %}{% endblock %}
</div>
</body>
例如base.content
{% extends "base.html" %}
{% load i18n %}
{% block mainmenu %}
...content..
{% endblock %}
现在,在我的应用模板扩展,其具有在每个页面上显示的内容基本内容模板。 这种方式你不会重复自己,你的模板代码变得非常干燥,只需使用base.content模板auth视图将使auth测试成功aggain!