Код: Выделить всё
try:
NewsTable.put_item(
Item={
"PK": "intentional_id_to_check_failing_of_ConditionExpression",
"SK": f"news#id#{uuid.uuid4().hex}",
"model_type": "TEST_MODEL",
"title": "dummy_title_1",
"timestamp": Decimal(str(datetime.now().timestamp())),
},
ConditionExpression="attribute_not_exists(PK)",
)
except resource.meta.client.exceptions.ConditionalCheckFailedException as e:
print(e)
- выше я пытаюсь вставить только если ПК еще не существует
- я проверил этот ответ и я обнаружил, что вышеизложенное должно работать. Как мне условно вставить элемент в таблицу dynamodb с помощью boto3
- помогите мне понять, чего мне не хватает, если у меня что-то не так.
- В идеале-> Я хочу вставить, только если название записи еще не существует.
- просто жить с PK сейчас, потому что в прошлом это работало, а сейчас нет работает.
Код: Выделить всё
pk = "intentional_id_to_check_failing_of_ConditionExpression"
try:
NewsTable.put_item(
Item={
"PK": pk,
"SK": f"news#id#{uuid.uuid4().hex}",
"model_type": "TEST_MODEL",
"title": "dummy_title_1",
"timestamp": Decimal(str(datetime.now().timestamp())),
},
ConditionExpression=Attr("PK").ne(pk),
)
except resource.meta.client.exceptions.ConditionalCheckFailedException as e:
print(e)здесь я использую Attr с условием не равно
Подробнее здесь: https://stackoverflow.com/questions/783 ... s-expected