[英]How do we print django models object value?
大家好,所以,我在我的 django 项目的
models.py
文件中创建模型,并在views.py
中创建控制器。 我写了一个名为register(request)
的 function 将一个新用户添加到我的数据库中,另一个名为login(request)
用于验证用户发送的数据是否在我的数据库中以让他登录。简而言之,问题是当我想要要在我的模板中打印用户的名字,它会向我显示字符串中的 object...这是
login(request)
function:
def login(request):
title = 'Connexion'
if request.method == 'POST':
email_sent = request.POST['email']
password_sent = request.POST['password'].encode('utf-8')
global isConnected
user = Users.objects.filter(email = email_sent)
if user and bcrypt.checkpw(password_sent, user[0].password):
if isConnected in request.session:
isConnected = request.session['isConnected']
return redirect('http://localhost:8000/',
{'isConnected':isConnected,
'first_name':user[0].first_name,
'last_name':user[0].first_name})
else:
request.session['id'] =user[0].first_name
request.session['first_name'] = user[0].first_name
request.session['last_name'] = user[0].first_name
request.session['phone'] = user[0].first_name
isConnected = True
return redirect('http://localhost:8000/',
{'isConnected':isConnected,
'first_name':user[0].first_name })
else:
print('Something went wrong')
return render(request, 'login.html',
{'title':title, 'isConnected':isConnected})
return render(request, 'login.html',
{'title':title, 'isConnected':isConnected})
else:
return render(request, 'login.html',
{'title':title, 'isConnected':isConnected })
这是我在模板中表示用户的 first_name 变量的内容:
<span class="initials" style="...">{{ first_name }}</span>
这就是它打印给我的:
<django.db.models.query_utils.DeferredAttribute object at 0x0000017850EE7A00>
只需在查询的结尾使用 .first() 即可:
user = Users.objects.filter(email = email_sent).first()
所以你有第一个 object 并且不需要切片。 请记住,Django 查询是惰性的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.