gpt4 book ai didi

python - 如何通过字符串识别列名? Django / python

转载 作者:行者123 更新时间:2023-11-28 22:52:56 27 4
gpt4 key购买 nike

我正在编写一个接受三个参数的基本函数:request、field 和 user_id。这个想法是,当您传递信息时,该函数返回的结果将是列(由参数“field”标识)、行(由参数“user_id”标识)。这是我的功能:

def get_user_field(request, user_id, field):
result = Users.objects.raw("SELECT id, %s FROM blog_users WHERE id = %s", [field, user_id])[0]
#return result.??????

我不知道该怎么做是用返回相应列的内容替换那些问号。如果我尝试

return result.field

它将在“field”所在的位置传递一个字符串。当然,不能将字符串放在那里。

那么我怎样才能实现一个与此完全相同并返回一个结果的函数呢?

谢谢!

最佳答案

这可以通过 getattr Python 内置函数完成:

return getattr(result, field)

但最好以完全不同的方式来做:

def get_user_field(request, user_id, field):
return User.objects.filter(id=user_id).values_list(field, flat=True)[0]

或者,考虑到用户不存在的可能性:

def get_user_field(request, user_id, field):
result = User.objects.filter(id=user_id).values_list(field, flat=True)
if result:
return result[0]
else:
return None # or raise an exception or whatever you like

关于python - 如何通过字符串识别列名? Django / python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19868171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com