У меня есть составная модель, которая выглядит следующим образом: -
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)
Это хорошо работает, за исключением того, что ParsedOutput сохраняется как список пар ключ-значение в DynamoDB.Я хочу облегчить чтение для группы поддержки и хочу разбить его на собственный список атрибутов - предположим, что все они могут быть 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())])
Не совсем понимаю, так как это не совсем работает.Есть указатели?