transactions - PynamoDB TransactWrite 更新抛出 ValidationException
问题描述
我有一个看起来像这样的模型:
class Task(BaseModel):
Meta = pynamodb_table_meta("my-task")
creator_id = UnicodeAttribute(null=False)
metadata = JSONAttribute(default={}, null=False)
status = UnicodeAttribute(default="new", null=False)
task_id = UnicodeAttribute(hash_key=True)
class BaseModel(Model):
created_at = UTCDateTimeAttribute()
updated_at = UTCDateTimeAttribute()
控制器代码:
try:
task_to_be_updated = Task(task_id='valid uuid of existing task')
with TransactWrite(connection=connection) as transaction:
now = datetime.utcnow()
transaction.update(
task_to_be_updated,
actions=[
Task.creator_id.set("new uuid")
Task.status.set("in_progress"),
Task.updated_at.set(now)
],
condition=(Task.status == "new")
)
except TransactWriteError as e:
raise Exception(f"Task error {e.cause_response_code}")
transaction.update 总是以 ValidationException 失败。不确定是什么问题。如果有一种方法可以了解 ValidationException 发生在哪里,那会很棒,因为我看到的只是“任务错误 ValidationException”,因此不知道哪个字段导致了问题。
解决方案
推荐阅读
- postgresql - 解决 go 的 sqlx 中潜在的空字段
- firebird - 自主事务中的 Firebird 2.5 异常处理
- php - Mybb sceditor 额外字段
- xcode - SwiftUI macOS 运行功能以将菜单项设置为启用?
- c++ - 如果用户没有输入任何内容或输入错误,如何重新输入用户的输入?
- c# - 如何从总文本框中多次减去折扣文本框?
- android - Mac OS Catalina 找不到我的安卓 LG KV20
- python - 在与不和谐 py 排名中锁定一个排名
- flutter - Dart 依赖注入 - 为什么我不能将实例引用传递给类成员?
- visual-studio - 从 github / Visual Studio git 中删除已提交的图像文件