繁体   English   中英

我们如何打印 django 型号 object 值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM