Создание сессий Django

0

В настоящее время у меня проблема с моим веб-приложением, если 2 пользователя вошли в систему, а затем каждый хочет сделать операцию (например, добавьте отзыв), эти 2 отзыва будут отображаться в базе данных как принадлежащие одному человеку (последний зарегистрированный в пользователе). Я документировал и знаю, что сессии должны быть сделаны, но я не могу понять, как это сделать. Из приведенных примеров я понимаю, что нужно что-то подобное

user = authenticate(username=username, password=password)

if user is not None:
    login(request, user)
    request.session['username'] = username
    return redirect('index')
else:
    return render(request, 'library/login.html')

а затем в профиле, если я хочу всегда печатать имя пользователя, всем пользователям будет отображаться последний зарегистрированный пользователь

class Profil(View):
    template_name = 'library/profile.html'

    def get(self, request):
        print(request.session['username'])
        # the rest of the code

Может ли кто-нибудь объяснить мне, где я ошибаюсь, и как я могу исправить это? Пример был бы идеальным.

PS: Извините заранее, если вы считаете это глупым вопросом.

  • 0
    Это не имеет ничего общего с сессиями. Как вы думаете, почему это так? Скорее, вы должны показывать нам код, в котором вы сохраняете отзывы и связываете их с пользователем.
  • 0
    Приведенный выше код предназначен только для тестирования. Допустим, вошли 3 пользователя одновременно (A, B и C), когда каждый пользователь обращается к profile.html, я хочу просто напечатать его имя пользователя. Я ожидаю увидеть имя каждого пользователя (A, B, C), но выведите C, C, C, потому что C - последний зарегистрированный пользователь . Каким-то образом перезаписывают другие учетные записи, потому что, если я обновлю страницу A, появится учетная запись C.
Показать ещё 4 комментария
Теги:
session

1 ответ

0

Вам не нужно явно определять сеанс, вы можете легко получить имя пользователя по запросу "request.user.username", а в вашей модели обзора вы можете добавить внешний ключ таблицы пользователя, указав, какой пользователь добавляет обзор.

  • 0
    Спасибо за ваш ответ, но, к сожалению, использование request.user.username ведет себя так же странно: при входе в систему и на странице отображается его информация (имя), а затем при входе в систему B и на странице также отображается его информация; теперь странная вещь, если A обновляет свою страницу, информация B будет отображаться на странице (request.user.username не должно быть проблемой, это дает мне имя пользователя, но дает имя пользователя B)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню