我有一個(非常複雜的)HTML表單,它充滿了邏輯,它根據selectpickers
中的不同選擇觸發,其字段與名稱中的對應字段名稱不完全相同Django模型,有時我擔心當涉及從HTML表單發送到Django模型的數據時,我需要添加一些邏輯。我意識到,我可能不會在Django中使用ModelForm
來處理這個問題,並一直在尋找一些使用標準django.forms.Form
將HTML表單映射到我的模型中的例子,但我並沒有真正發現。有人可以給我一些提示嗎?如何將HTML表單數據映射到Django模型
0
A
回答
0
您不能只將html表單映射到您的django模型中。您需要先創建一個模型表單,然後將其呈現在html中。
如果您想以某種方式將您的html表格映射到模型。首先在html中渲染你的ModelForm。創建django表單的html格式的精確副本,並在html中使用它。在你的視圖中捕捉它並像模型一樣處理它。但無論如何你必須創建ModelForm。
1
這聽起來好像你的html表單已經存在了,不知何故你想從表單中讀取POST數據。在沒有做出任何進一步假設的情況下,如何通過視圖輸出沒有django ModelForm或forms.Form輸出的html表單 - 只要表單操作位置通過路由映射到視圖 - 視圖就可以處理request.POST數據。如果您沒有使用django表單(基於模型或表單),並且您必須在視圖中進行自己的驗證,那麼django的所有表單驗證良好都會出來。表單數據驗證完成後,像這樣初始化模型對象:my_obj = ModelName(field_name1 = form_input_data1,field_name2 = form_input_data2,...)就是這樣。然後你可以做my_obj.save()。
現在,讓我們說,這不是很糟糕。您實際上正在使用forms.Form繼承來創建與模型沒有直接關係的django-istic表單類。現在,您可以使用表單相關的驗證clean_field和clean步驟等...以及所有內置字段類型內部驗證django自動執行。然後,當您讀取POST數據時 - 盡一切努力將表單字段(通過必要的轉換)映射到您嘗試構建的django模型對象,記住默認值和任何模型保存自定義分配發生。
相關問題
- 1. 如何將NHibernate數據模型映射到域模型?
- 2. 將JAXB數據映射到域模型
- 3. 將mvvm映射到數據模型
- 4. 將圖像模型映射到數據
- 5. 如何創建一個不映射到數據庫表的Django模型
- 6. 如何將對象繼承映射到數據模型?
- 7. 如何使用Datamapper將模型映射到數據庫視圖
- 8. 如何將kinect骨架數據映射到模型?
- 9. 將CSV映射到模型
- 10. 如何從一張表映射到django模型?
- 11. Django的關係如何映射模型
- 12. 如何在映射模型到mongoDB時使用JPA映射JSON類型數據
- 13. 將EF 4.1代碼優先模型映射到數據庫表
- 14. 將數據錶快速映射到模型
- 15. 將字典數據庫表映射到MVC模型的方法
- 16. 將模型映射到視圖模型
- 17. 通過AutoMapper將映射域模型映射到視圖模型
- 18. 數據映射鄰接表模型AutoMapper
- 19. csv沒有映射到django模型
- 20. 如何將表單域映射到數據庫對象
- 21. 使用Automapper將大型模型映射到數據庫對象
- 22. 將複雜數據類型映射到模型類(SOAP)
- 23. 將領域模型映射到Zend表單
- 24. 如何將多個表映射到一個模型?
- 25. 如何將表格映射到laravel中的模型
- 26. 如何將結構基於數組的基礎上將模型映射到表?
- 27. 如何JSON數據映射到C#模型類
- 28. ETL過程如何映射到MS Excel Power Pivot(數據模型)
- 29. 如何映射此模型
- 30. 笨如何映射發送到模型