【问题标题】:Django: populate user selectable database fields in resultDjango:在结果中填充用户可选择的数据库字段
【发布时间】:2018-09-19 00:01:40
【问题描述】:

我有一个包含 50 多列的大型 Django 数据库表。我从用户那里获取输入(以数组形式),他希望在搜索结果中看到哪些列。我无法将用户选择的列映射到数据库。

        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

在上面的代码中,我想根据用户输入选择列,但是当我尝试使用字符串变量访问列名时出现错误。

【问题讨论】:

    标签: django django-models django-rest-framework


    【解决方案1】:

    我得到了答案。我们可以使用 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
    

    【讨论】:

      猜你喜欢
      • 2014-09-12
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多