2014-03-30 26 views
1

可以說我有Peewee - 如何轉換成快譯通模型

import peewee 

class Foo(Model): 
    name = CharField() 

我想做到以下幾點:

f = {id:1, name:"bar"} 
foo = Foo.create_from_dict(f) 

這是原生的Peewee?我無法找到source code中的任何內容。

我已經寫了這個功能,工作原理,但寧可使用本機的功能,如果它存在:

#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 S和允許用戶對其進行編輯。我希望能夠將JSON字符串傳遞給控制器​​,在那裏我將它轉換爲字典,然後將Foos從中移出,這樣我就可以根據需要進行更新。

回答

5

如果你有一個快譯通,你可以簡單:

class User(Model): 
    name = CharField() 
    email = CharField() 

d = {'name': 'Charlie', 'email': '[email protected]'} 
User.create(**d) 
+0

如果在字典中鍵('D')不是在模型中尚未什麼?這會繼續嗎? – user5359531