Я использую pynamodb==3.3.3
для сканирования элементов с условием attributes_to_get
, но получаю исключение, которое не могу решить:
File "/Users/user/Documents/project/script.py", line 250, in filter_writable_snapshots
existing_snapshots = ItemSnapshot.scan(attributes_to_get=['id'])
File "/Users/user/Documents/project/venv/lib/python3.7/site-packages/pynamodb/models.py", line 790, in scan
filters=filters
File "/Users/users/Documents/project/venv/lib/python3.7/site-packages/pynamodb/models.py", line 1050, in _build_filters
raise ValueError("Attribute {0} specified for filter does not exist.".format(attr_name))
ValueError: Attribute attributes_to_get specified for filter does not exist.
У модели есть поле id
.
from pynamodb.models import Model
from pynamodb.attributes import UnicodeAttribute
class ItemSnapshot(Model):
class Meta:
table_name = 'my_table'
id = UnicodeAttribute(hash_key=True)
other_field = UnicodeAttribute()
Я пытаюсь загрузить только поле id
.
existing_snapshots = ItemSnapshot.scan(attributes_to_get=['id'])
Я что-то здесь не так делаю или почему происходит сбой запроса?Эта трассировка выглядит так, как будто она пытается найти атрибут attributes_to_get
, который не имеет для меня никакого смысла.
Я уже проверяю, что атрибут класса id
существует .