如何在 Django 中使用原始 sql 检查 request.user

How to check a request.user with raw sql in Django

我想获取有关当前登录的学生的数据

这是我的代码:

def profile(request):
    cursor = connection.cursor()
    a = request.user.id
    cursor.execute("SELECT * from Student WHERE ID = a ")

    data = dictfetchall(cursor)
    return render(request, 'personal.html', {'data': data})

in table 学生属性 ID 与 table auth_user 中的属性 id 相关联 甚至可以检查吗?我知道使用 ORM 很容易做到,但我需要使用原始 sql

您使用参数,因此:

def profile(request):
    with connection.cursor() as cursor:
        cursor.execute('SELECT * FROM Student WHERE ID = <b>%s</b>', <b>[request.user.id]</b>)
        data = dictfetchall(cursor)
    return render(request, 'personal.html', {'data': data})

然而,使用原始查询通常不是一个好主意。