我正在尝试为我的模型创建通用视图,并且我坚持动态地创建模型窗体。只需将模型的名称作为字符串来创建模型就可以了吗?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,我试图从模型名称的字符串中获取模型 –