Если представление django использует User.get для имени пользователя, когда другой пользователь вошел в систему, теряется ли контекст пользователя?

У меня есть приложение django для учителей/студентов. Когда Учитель вошел в систему и хочет увидеть прогресс Ученика, я делаю следующее:

  1. Учитель вошел в систему и является request.user. Она запрашивает отчеты для студента с именем пользователя, например, «мой студент».
  2. studentuser = get_object_or_404 (пользователь, имя пользователя = 'мой студент')
  3. А затем он продолжает извлекать данные этого ученика, чтобы отобразить их учителю.

В моем шаблоне у меня есть:

Учитель: {{ user.username }}
Информация о студенте:

Я получаю правильную информацию об ученике, но не вижу имени пользователя учителя. В моем шаблоне также есть навигация в зависимости от того, вошел ли пользователь в систему или нет, и для этой страницы я получаю представление not_logged_in моей панели навигации.

Однако теперь, если я перехожу на другие страницы, на которых также отображается Учитель: {{ user.username }}, отображается имя пользователя и отображается панель навигации logged_in.

Таким образом, только для этого одного шаблона, который путают с пользователем, хотя фактический логин пользователя (учитель) действителен и сохраняется.

Может кто-нибудь объяснить, что здесь происходит не так?


person zaphod    schedule 25.05.2012    source источник
comment
Нет. Такой магии не существует. Хотя мы не можем сказать, поскольку вы не опубликовали свой код, я предполагаю, что это представление не использует, скажем, RequestContext, а переменная user просто не в контексте.   -  person Yuji 'Tomita' Tomita    schedule 25.05.2012
comment
Спасибо Юджи. Да, я пропустил «RequestContext». Виноват.   -  person zaphod    schedule 25.05.2012


Ответы (1)


Вставка моего комментария, так как оказывается, что это был ответ.

Нет. Такой магии не бывает. Хотя мы не можем сказать, поскольку вы не опубликовали свой код, я предполагаю, что это представление не использует, скажем, RequestContext, а пользовательская переменная просто не в контексте.

person Yuji 'Tomita' Tomita    schedule 25.05.2012