如何使用 dict_to_model 将字典键映射到 PeeWee 中的模型字段
How to map dictionary keys to model fields in PeeWee with dict_to_model
如何在不更改模型属性的情况下使用 dict_to_model()
从字典值填充(将数据插入)table?我有一个模型,视频,具有以下属性:
class Video(model):
id = IntegerField()
camera = CharField()
channel = IntegerField()
filename = CharField()
我还有一个数据字典:
data = {'video_id': 1234, 'camera_name': "canon", 'channel_id': 5, 'video_name' = "intro.mp4"}
dict 中的每个 key:value 对对应一个列及其数据。据我了解,我可以使用 playhouse.shortcuts
中的 dict_to_model
函数将字典键映射到 table 列并对字典中的值进行操作。如何在不更改 class 属性名称的情况下执行此操作?我能让它工作的唯一方法是将 Video.id 更改为 Video.video_id 以便它与字典匹配等等。即使这样,.save() 语句也不会将数据推送到 table。如果我不更改我的模型属性,我会得到:
AttributeError: Unrecognized attribute "video_id" for model class <Model: Video>
如果我更改我的属性以匹配字典,它会接受映射但不会将数据发送到 table。
字典和模型字段应该匹配,因此您必须重命名字典字段或模型字段。
另请查看 peewee quickstart
中的“存储数据”部分
uncle_bob = Person(name='Bob', birthday=date(1960, 1, 15))
uncle_bob.save() # bob is now stored in the database
可能在将 dict 转换为模型后你需要调用 .save()
方法
如何在不更改模型属性的情况下使用 dict_to_model()
从字典值填充(将数据插入)table?我有一个模型,视频,具有以下属性:
class Video(model):
id = IntegerField()
camera = CharField()
channel = IntegerField()
filename = CharField()
我还有一个数据字典:
data = {'video_id': 1234, 'camera_name': "canon", 'channel_id': 5, 'video_name' = "intro.mp4"}
dict 中的每个 key:value 对对应一个列及其数据。据我了解,我可以使用 playhouse.shortcuts
中的 dict_to_model
函数将字典键映射到 table 列并对字典中的值进行操作。如何在不更改 class 属性名称的情况下执行此操作?我能让它工作的唯一方法是将 Video.id 更改为 Video.video_id 以便它与字典匹配等等。即使这样,.save() 语句也不会将数据推送到 table。如果我不更改我的模型属性,我会得到:
AttributeError: Unrecognized attribute "video_id" for model class <Model: Video>
如果我更改我的属性以匹配字典,它会接受映射但不会将数据发送到 table。
字典和模型字段应该匹配,因此您必须重命名字典字段或模型字段。
另请查看 peewee quickstart
中的“存储数据”部分uncle_bob = Person(name='Bob', birthday=date(1960, 1, 15))
uncle_bob.save() # bob is now stored in the database
可能在将 dict 转换为模型后你需要调用 .save()
方法