Python Django, как просмотреть все содержимое регистрации для профиля пользователя. он показывает только email
Python Django, как просмотреть все содержимое регистрации для профиля пользователя. он показывает только email.
views.py def Unreg(request):
def loginpage(request):
if request.method == "POST":
try:
Userdetails=acc.objects.get(
Q(email=request.POST['email']) | Q(uname=request.POST['email']),
pwd=request.POST['pwd']
)
print("Username=",Userdetails)
request.session['email']=Userdetails.email
request.session['pwd']=Userdetails.pwd
return render(request,'Logout.html')
except acc.DoesNotExist as e:
messages.success(request,' Username / Password Invalid.')
return render(request,'Login.html')
def logout(request):
try:
del request.session['email']
uname = request.session['uname']
except:
return redirect('Loginpage')
return redirect('Loginpage')
logout.html
{{request.session.email}}
<button onclick="myFunction()"><a href="{% url 'Loginpage' %}">Logout</a></button>
<script>
function myFunction() {
if (confirm("Are you sure you want to logout?")) {
} else {
}
}
</script>
Когда вы выводите экземпляр в виде строки, как вы это делаете при выводе print("Username=",Userdetails), Django вызывает модель __str__ method. Поскольку он печатает email и не печатает Userdetail Object(44) или что-то подобное, я думаю, что у вас уже есть метод __str__, прописанный в вашей модели.
Тогда все, что вам нужно сделать, это изменить его на что-то вроде этого:
def __str__(self):
return f"{self.email} - {self.password} - {self.username}"
Конечно, вы должны адаптировать имена здесь к именам атрибутов в вашей модели
Если вы их не знаете, ознакомьтесь с f strings