gpt4 book ai didi

python - 使用列名称的辅助列表访问 Django 查询集的值

转载 作者:太空宇宙 更新时间:2023-11-04 01:54:57 24 4
gpt4 key购买 nike

我试图避免在我的代码中出现硬编码情况

如果有一个客户查询集,例如列是(姓名、电话、电子邮件……)

如果我这样做

customer = Customer.objects.get(name = 'bbc')
# to get the values of each field I need to do

customer.name
customer.phone
customer.email
……


为了避免必须这样做,因为我需要比较 If 语句中的每个字段以不对表单进行任何更改,我制作了一个包含列名的列表

if 语句的例子

if customer.name == some variable or customer.email == some vairiable …..

我制作了一个包含列名的列表来避免这个问题

list = ['姓名', '电话', '邮箱']

当我这样做的时候

for loop 

if customer.list[i] == some variable


我得到一个错误客户不包含属性列表

我怎样才能解决这个问题

提前致谢

最佳答案

你应该在这里使用 {getattr(..) [Python-doc]]( https://docs.python.org/3/library/functions.html#getattr )。您可以将条件替换为:

if any(getattr(customer, li) == some_variable for li in mylist):
# ...

尽管比较本质上是 正交 维度的所有场与同一个变量看起来很奇怪。

关于python - 使用列名称的辅助列表访问 Django 查询集的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57004712/

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