Привет всем-
Я совершенно новичок в Django / python и прохожу учебное пособие для класса, расположенного здесь . У меня большая часть работы, но у меня проблемы. Я могу зарегистрировать пользователя, но, похоже, не могу войти. Для соответствующей части руководства найдите строку We’ll need one more form, a login form:
, которая объясняет, как реализовать форму входа в систему. Я сделал это, и форма работает, и я могу «войти», и я получаю сессионный cookie на клиенте.
Проблема в том, что если вы прокрутите немного вниз, вы увидите We should add a welcome message and login/logout links to our templates:
, в котором объясняется, как показать пользователю приветственное сообщение, если он вошел в систему, или ссылку для входа, если это не так. Проблема в том, что после входа я все равно получаю ссылку для входа!
Теперь учебник объясняет это. Он говорит, что мне нужно сделать две вещи: 1) Поместить следующий код в мой файл settings.py
TEMPLATE_CONTEXT_PROCESSORS = [
"django.core.context_processors.request"
]
2) Создайте файл с именем middleware.py, в котором будет установлено значение request.user. Я сделал это и перезапустил свой сервер, но у меня все еще есть моя проблема. (Код приведен в учебнике, но для простоты я также вставлю его сюда):
from users.models import User
class UserMiddleware(object):
def process_request(self, request):
user_id = request.session.get("user_id")
if user_id is not None:
request.user = User.objects.get(pk=user_id)
else:
request.user = None
Я попытался немного изменить синтаксис этой первой части на следующий:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.request",
)
, который лучше соответствует другим строкам в settings.py, но это тоже не помогло.
Я знаю, что это огромная стена текста, но кто-то может указать мне правильное направление? Само по себе это не задание, а учебник для последующего задания, так что помощь очень важна!