我有一个很大的Django数据库表,其中有50多个列。我从用户(在数组中)获取输入,他希望在搜索结果中查看哪些列。我无法将用户选择的列映射到数据库。
ticker_details = ticker_quotes.objects.filter(mkt_cap__lte = float(20))[:100]
if(len(ticker_details) > 0):
# print("length: ",len(data))
for item in ticker_details:
try:
history[(item.symbol_id)] = {"title" : item.symbol_id, "change" : item.change} # How to select the database column using variable
except:
pass
self.context["detail"] = history
在上面的代码中,我想根据用户输入选择列,但是当我尝试使用字符串变量访问列名时出现错误。
答案 0 :(得分:0)
我得到了答案。我们可以使用getattr(model,fieldtoget)python函数。
上面的代码如下:
ticker_details = ticker_quotes.objects.filter(mkt_cap__lte = float(20))[:100]
if(len(ticker_details) > 0):
# print("length: ",len(data))
for item in ticker_details:
try:
history[(item.symbol_id)] = {"title" : item.symbol_id, "change" : getattr(item, "change")} #
except:
pass
self.context["detail"] = history