我正在嘗試爲我的模型創建通用視圖,並且我堅持動態地創建模型窗體。只需將模型的名稱作爲字符串來創建模型就可以了嗎?django上的通用CRUD視圖
回答
您可以通過在視圖的本地範圍中簡單定義模型窗體的類,然後直接在其後創建它的實例來完成此操作。您只需確保根據其名稱接收模型的類。使用django的get_model
函數。簡單示例:
def my_view(request):
model_name = "myapp.MyModel" #make sure the app name is also provided
from django.db.models import get_model
model_class = get_model(*model_name.split('.'))
class MyModelForm(ModelForm):
class Meta:
model = model_class
# other attributes of the form
form = MyModelForm()
# ...
我期待從django獲得一個方法,所以我不必在視圖中聲明一個類。我會盡力清理那個解決方案,看看我能得到什麼。 –
您是否檢查過Django的基於類的通用視圖?特別是'FormView'?儘管如此,你仍然無法做到這一點,但你可以通過上述方法擴展它。 Django不會爲您提供一種方法來執行此操作。 –
我將方法從視圖中的類中分離出來並在視圖中調用它。它看起來不錯,謝謝。 –
- 1. Django-ViewFlow:如何添加CRUD視圖流
- 2. 將基於舊功能的通用CRUD視圖轉換爲基於新樣式類的通用CRUD視圖
- 3. Django的通用視圖
- 4. Django的通用視圖
- 5. 使用Django通用視圖
- 6. Django - 使用通用視圖
- 7. Django 1.5通用視圖
- 8. Django 1.7通用視圖
- 9. 覆蓋CRUD視圖
- 10. Django的使用通用視圖
- 11. Django中的通用視圖繼承
- 12. Django的URL和通用視圖
- 13. Django在視圖中的通用代碼
- 14. Django的類通用視圖重定向
- 15. 查詢集Django的通用視圖
- 16. django的通用視圖問題(detailview,get_queryset)
- 17. Django如何重用所有視圖通用的視圖功能
- 18. 查詢上通用的顯示視圖 - Django的
- 19. 在Django中使用matplotlib通用視圖
- 20. Django 1.7教程:使用通用視圖
- 21. Django通用視圖用法錯誤
- 22. 如何利用django通用視圖?
- 23. Django error(CRUD)urls.py
- 24. 向django通用視圖添加額外的上下文
- 25. Django通用視圖額外的上下文
- 26. 使用Django通用視圖時,可以在request.user上過濾嗎?
- 27. Django CRUD管理視圖:返回錯誤消息
- 28. Rails替代Django管理面板/ CRUD視圖生成器?
- 29. 將django函數通用視圖轉換爲基於類的通用視圖
- 30. 通過django視圖上的字典更改圖像
「動態創建模型表單」?爲什麼?什麼可能的情況導致這個? –
您的意思是創建其他模型可以繼承的父模型嗎? – Lionel
nope,我試圖從模型名稱的字符串中獲取模型 –