我有一个复合模型,看起来像这样:
class Parser(MapAttribute):
ParserType = UnicodeAttribute()
MailBody = UnicodeAttribute()
BestTemplate = UnicodeAttribute(null=True)
ParseStatus = ParseStatus()
ParsedOutput = JSONAttribute()
class OMPStatusModel(Model):
"""
PynamoDB Model handling table OMPStatus
"""
class Meta:
table_name = 'OMPStatus'
region = 'us-east-1'
SNSMessageID = UnicodeAttribute(hash_key=True)
CreatedDateTime = UTCDateTimeAttribute()
UpdatedDateTime = UTCDateTimeAttribute(null=True)
CompletedDateTime = UTCDateTimeAttribute(null=True)
ProcessStatus = UnicodeAttribute()
ErrorDetail = UnicodeAttribute(default="Not set")
SES = SES(null=True)
SNS = SNS(null=True)
Parser = Parser(null=True)除了在DynamoDB中将ParsedOutput存储为键值对列表之外,这种方法工作得很好。为了便于支持团队阅读,我想把它分解成自己的属性列表--为了便于讨论,假设它们都可以是UnicodeAttribute()。
我在想我应该可以这样做:-
class MyMapAttribute(MapAttribute):
my_internal_map = MapAttribute()
class Parser(MapAttribute):
ParserType = UnicodeAttribute()
MailBody = UnicodeAttribute()
BestTemplate = UnicodeAttribute(null=True)
ParseStatus = ParseStatus()
ParsedOutput = MyMapAttribute(default = {})然后做一些类似的事情:
OMPStatusModel.update(actions=[OMPStatusModel.SES.set(kwargs[key]),
OMPStatusModel.UpdatedDateTime.set(datetime.now())])不完全得到它,因为它并不是很有效。有什么建议吗?
发布于 2018-06-15 04:35:07
归根结底,这是因为我没有将正确的对象传递给Map。一旦我这样做了,它就工作得很好。
https://stackoverflow.com/questions/50614290
复制相似问题