回答
我們把Django窗體類放入forms.py
文件的主要原因是慣例。它使其他人可以輕鬆查看您的應用程序,並瞭解他或她在任何給定文件中會找到哪些類型的內容。遵守慣例是很好的,但這不是法律,你可以隨意組織你的代碼。
這是我會怎麼做:
首先,看看你是否可以通過分解出重複碼減少代碼量。常見的驗證邏輯可以被拉入custom validators。共享字段或功能的表單可以從共同父項繼承。
如果您已經創建了自定義字段類,可以將所有這些文件分隔到應用程序目錄中名爲formfields.py
的文件中,並將它們簡單地導入forms.py
。同樣,如果你有自定義驗證器,你可以將它們取出並導入它們。
如果這些都不足以減少足夠的文件大小,我會按功能將我的表單類分成幾個文件,例如, forms_user.py
,forms_products.py
,forms_data_entry.py
或其他。這樣,我們在給定文件中找到的東西仍然很明顯。無論您的舊錶格被引用到哪裏,您都必須更改導入語句,但這些應該是必需的唯一更改。
這是個好主意。我現在正在考慮這個問題。我想過的一個想法是在每個模塊中都有一個'forms.py',但這似乎與Django-ish相反,所以我正在考慮使用這些其他想法...... – nicorellius
我不能評論,所以我正在寫答案。你可以做的另一件事是創建一個forms
目錄中的應用程序目錄(記住__init__.py
),並分割你的形式formone.py,form2.py,...
然後你可以導入表單這樣from myapp.forms.formone import FormOne
還是在__init__.py
您可以將代碼:
from formone import *
from form2 import *
你還可以用from myapp.forms import FormOne
導入表單如果你真的想盡可能少地做出改變,通過函數(forms_user.py,forms_product.py)將forms.py分割成多個文件是最簡單的。
如果您有時間重構或開始一個新項目,最好的解決方案是爲您的項目的每個組件(例如用戶,項目......)製作一個新的django應用程序,每個組件都有自己的forms.py文件。如果一個django應用程序變得太大,很多事情都會停止縮放(models.py,views.py等),並且維護變得越來越困難。
- 1. 在幾個文件中拆分views.py
- 2. 在幾個文件中拆分django應用程序測試
- 3. 拆分models.py分成幾個文件
- 4. 的Django在forms.py
- 5. uploadede文件路徑的Django在forms.py
- 6. 在幾個web.config文件中拆分'appSettings'部分
- 7. 將幾個文件中的大型HTML文件拆分
- 8. 在幾個文件中拆分play2-mini路由
- 9. 拆分conftest.py文件分成幾個小conftest樣件
- 10. 將JavaScript文件拆分爲幾個文件
- 11. 如何將vue中的dev-server.js文件拆分爲幾個分離的文件?
- 12. 拆分在Django
- 13. 在Linux中將許多CSV文件拆分爲幾個較大的文件
- 14. 拆分MongoDB的數據分成幾個文件
- 15. 拆分數據分成幾個部分
- 16. Symfony2:在多個文件中拆分routing.yml
- 17. 在幾個位置拆分查詢
- 18. Django:在forms.py中觸發的KeyError
- 19. 如何分割在幾個文件中
- 20. Unix拆分功能將文件拆分成多個文件:拆分記錄
- 21. 將.mdf數據庫拆分爲幾個文件
- 22. Django小部件覆蓋forms.py上的error_message
- 23. 在Netbeans中將複雜的GUI窗口拆分爲幾個文件
- 24. 將大型數據文件拆分爲幾個小文件(文本格式)
- 25. 在Flex中將多個文件拆分成多個文件?
- 26. 在文本文件中拆分文本
- 27. 拆分一個TXT與特定名稱的幾個txt文件在Python
- 28. 拆分Django項目在幾臺服務器上
- 29. C#如何在多個文件中拆分文本文件
- 30. 幾個文件和分叉
你有什麼特別的問題?爲什麼這很難? –
答案顯然很簡單。我知道分裂views.py可能有點混亂,所以我問,因爲我不知道是否有任何捕獲。 – Max