我想通了。如果身份驗證應用程序使用複雜模板呈現默認身份驗證模板視圖,則會發生身份驗證測試中失敗的測試。 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!