Получить определенную переменную из набора запросов

Я пытаюсь получить определенную часть вывода cd, но мой код не работает. Я пытаюсь определить новую переменную, содержащую только объект 'символы' из вывода Queryset.

        if cmd_exec == '/wanalysis':
            get_Memory = Memory.objects.filter(user=current_user).values() 
            cd = get_Memory.all()  
            X = cd['{id}']
            print(X)

Это вывод для print(cd)

<QuerySet [{'id': 183, 'user_id': 1, 'raw_message': '/setworkspace AAPL TSLA MSFT 12/12/2018 12/12/2022', 'date1': '2018-12-12', 'date2': '2022-12-12', 'symbols': "['AAPL', 'TSLA', 'MSFT']"}]>

Я хотел бы определить переменную X с помощью 'символов', выводимых из QuerySet.

Так что что-то вроде:

X = cd['symbols']

Набор QuerySet содержит список словарей.

Если вы уверены, что для каждого пользователя существует только один Memory, вы можете сделать следующее для получения только этого Memory экземпляра:

if cmd_exec == '/wanalysis':
        get_Memory = Memory.objects.filter(user=current_user).values() 
        cd = get_Memory.first()
        X = cd['symbols']
        print(X)

Если на одного пользователя может приходиться более одного Memory, необходимо построить список символов путем итерации по набору запросов:

if cmd_exec == '/wanalysis':
        get_Memory = Memory.objects.filter(user=current_user).values() 
        cd = get_Memory.all()  
        X = [memory['symbol'] for memory in cd]
        print(X)

Есть ли причина, по которой вы извлекаете values(), а не объекты модели?

Вернуться на верх