Не могу получить определенные данные из базы данных, используя сессию Obj. Как я могу сделать это в Django?
def register(request):
userID = random.randint(1000, 9999)
if request.method == 'POST':
# got error in this ("MultiValueDictKeyError generated in Django after POST request on login page")
# register_id = request.POST[userID] -|
# can use both methods request.POST[] & request.POST.get()
# user_name = request.POST.get('username')
user_name = request.POST['username']
# user_email = request.POST.get('useremail')
user_email = request.POST['useremail']
# password1 = request.POST.get('pass')
password1 = request.POST['pass']
# password2 = request.POST.get('repass')
password2 = request.POST['repass']
# request.session['regid'] = userID
# request.session['usnm'] = user_name
if user_name and user_email and password2 and password2:
if password2 == password1:
recsave = user_registration()
recsave.regid = userID
recsave.username = user_name
recsave.useremail = user_email
recsave.userpassword = password2
recsave.save()
return redirect('/login')
else:
notmatch = {'passnotmatch': 'Passwords are not match'}
return render(request, 'testpage1.html', notmatch)
else:
return render(request, 'testpage1.html')
Это логин, где у нас есть сессия. Где я использовал req.session['userid'], но я не получил другие данные конкретного пользователя из базы данных.
def login(req):
if req.method == 'POST':
oth = user_registration.objects.get(useremail=req.POST.get('useremail'), userpassword=req.POST.get('pass'))
if oth:
print('You are logged in', oth)
req.session['userid'] = oth.regid
req.session['username'] = oth.username
return render(req, 'userdash.html')
else:
return render(req, 'login.html', {'oth': "Credentials are not perfect"})
else:
return render(req, 'login.html')
def userdash(req):
if req.session.has_key('userid'):
usnm = req.session.get('userid')
uname = req.session.get('username')
allfields = user_registration.objects.contains(uname)
return render(req, 'userdash.html', {'userid': usnm, 'username': uname, 'pert': allfields})
else:
return redirect('/login')
Я не знаю, как получить все данные конкретной сессии, объясните мне?
Я пытаюсь использовать user_registration.objects.contains/all/filter, но он не работает