У меня есть следующий код в моем шаблоне:
<div class="account">
{% if request.user.is_authenticated %}
<a href="{% url settings %}"
class="iconed username">{{ request.user.username }}</a>
|
<a href="{% url logout %}?next={{ request.path }}"
class="iconed logout">{% trans "Logout" %}</a>
{% else %}
<a href="{% url login %}?next={{ request.path }}" class="iconed login">{% trans "Login" %}</a>
|
<a href="{% url sign_up %}?next={{ request.path }}"
class="iconed sign-up">{% trans "Sign up" %}</a>
{% endif %}
</div>
Как видите, разные ссылки зависят от того, вошел пользователь в систему или нет. Это работает нормально, если я проверяю это руками, но когда я пытаюсь проверить это с помощью следующего кода:
def test_home_logged_in(self):
if self.client.login(username='Test', password='secret'):
home = self.app.get('/')
self.assertOK(home)
self.assertContains(home, '/settings/')
self.assertContains(home, '/logout/')
else:
self.fail("Couldn't log in.")
login () возвращает True, но тест не пройден. Я вызвал showbrowser () для домашнего объекта и вижу, что возвращенная страница выглядит как страница для анонимного пользователя - она содержит ссылки для регистрации и входа в систему, кроме ссылок на настройки и выход из системы.
Правильно ли использовать * request.user.is_authenticated * в шаблоне для проверки подлинности пользователя? Почему шаблон не видит, что пользователь зарегистрировался с test ?
Спасибо!