правильное хранение и доступ к пользователям в сеансе django - PullRequest
0 голосов
/ 21 октября 2019

Здесь я пытаюсь сохранить выбранных пользователей в каком-то сеансе django, и для этого я пробовал вот так, но при получении пользователей из сеанса в другом представлении я получаю пустой набор запросов. Как я могу получить пользователей, которые хранятся в сеансев другой функции Джанго?

сохранение выбранных пользователей в сеансе

  selected_users = get_user_model().objects.filter(id__in=request.POST.getlist('users'))
  initial = {'users':[]}
  session = request.session.get('users',initial)
  if selected_users:
       for user in selected_users:
           if not user in session['users']:
               session['users'].append(user.email)
  print(session['users'])

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

 sess = request.session.get('users',{'users':[]})
    users = get_user_model().objects.filter(pk__in=sess["users"])
    print('sess',users) #didn't worked

    request.session['users'] # didn't worked either

1 Ответ

1 голос
/ 21 октября 2019

Вы не устанавливаете список user в session. Вы устанавливаете адрес электронной почты в переменной session["user"], но запрашиваете id. Кроме того, вы пытаетесь установить значение сеанса как объект list, но используете значение по умолчанию в качестве объекта dict.

selected_users = get_user_model().objects.filter(id__in=request.POST.getlist('users'))

session_users = request.session.get('users',[])
if selected_users:
    for user in selected_users:
        if not user in session_users:
            session_users.append(user.id)  # append id instead of email
print(session_users)

# set the value in session
request.session["users"] = session_users

Теперь вы можете получить список user.id.

sess_users = request.session.get('users',[])
users = get_user_model().objects.filter(pk__in=sess_users)
print('sess',users)

print request.session['users']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...