2011-06-20 207 views
2

我正在尋找Django Forms替換。Django替換Google App Engine(Python)

我需要在Django中基於GAE模型自動構建表單。 Django Forms可以在GAE上使用一些bug。我需要更換它。

我找到了WTForms。你的選擇是什麼?

+0

你可能想解釋爲什麼你不想使用Django表單。 –

+0

如果我們基於模型構建表單,Django表單有很多問題。例如,Django和webob中的請求字典 - 以不同類型的數據呈現,這是引發驗證錯誤。我需要更簡單的組件來從模型構建更簡單的表單,而不會出現意外情況。 –

+0

所以你想要另一個表單庫,讓你建立基於App Engine模型的表單?如果沒有,爲什麼不在沒有模型集成的情況下使用Django表單呢? –

回答

2

WTForms是GAE的不錯選擇。它類似於Django的形式。

另請注意,除了ModelForms和相關類型外,django-forms應該在GAE上運行良好,開箱即用。事實上,這也是django甚至在GAE上得到支持的原因之一。

+0

但我在Django Forms中遇到了一些問題。例如,如果我曾在相關領域工作過,則會產生一些麻煩。 (現在我不能說我在過去看到什麼錯誤)。現在我搜索工具在GAE上正常工作。我可以輕鬆擴展一些字段類型。 –

0

我已經找到了這個答案。我唯一能找到的就是WTForms。 WTForms提供了一些將模型翻譯成表單的整合。更具體地說,它在wtforms.appengine.ext.model_form中有一個名爲model_form的東西。有了這個,你可以製作一個機智

form_obj = model_form(ModelClass) 

#validate with 
form = form_obj(request.POST) 
if form.validate() 
    mc = ModelClass 
    form.populate_obj(mc) 
    mc.put() 

它不支持新的ndb模塊噴氣機。但大多數東西適用於小代碼更改..希望它有幫助。

+0

P.S.代碼示例不可插入.. populate_obj()可以在wtforms根目錄的form-file中找到 –