Допустим, у меня есть
import peewee
class Foo(Model):
name = CharField()
Я хотел бы сделать следующее:
f = {id:1, name:"bar"}
foo = Foo.create_from_dict(f)
Это уроженец Пиуи? Мне не удалось ничего найти в исходном коде.
Я написал эту функцию, которая работает, но лучше использовать нативную функцию, если она существует:
#clazz is a string for the name of the Model, i.e. 'Foo'
def model_from_dict(clazz, dictionary):
#convert the string into the actual model class
clazz = reduce(getattr, clazz.split("."), sys.modules[__name__])
model = clazz()
for key in dictionary.keys():
#set the attributes of the model
model.__dict__['_data'][key] = dictionary[key]
return model
У меня есть веб-страница, которая отображает все foo
и позволяет пользователю редактировать их. Я хотел бы иметь возможность передать строку JSON контроллеру, где я бы преобразовал ее в dict, а затем сделал бы из нее Foos, чтобы я мог обновлять по мере необходимости.