Django: заполнить выбираемые пользователем поля базы данных в результате - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть большая таблица базы данных 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

в приведенном выше коде я хочу выбрать столбцы на основе пользовательского ввода, но я получаю сообщение об ошибке при попытке получить доступ к имени столбца с помощью строковой переменной.

1 Ответ

0 голосов
/ 19 сентября 2018

Я получил ответ.Мы можем использовать функцию Python getattr (model, fieldtoget).

приведенный выше код будет выглядеть так:

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
...