我有一个包含一些模型的应用程序。所有模型都以相同的方式呈现在我的视图中(模型表,模型表格作为每个模型的表格)。我每个模型有三个模板和三个视图,一个用于创建一个用于创建,一个用于编辑删除。我想要的是让它更具动态性,对于所有模型都有类似django管理工作的类型。我知道如何捕获content_type模型类和获取对象当我所拥有的只是模型名称但我不知道如何在添加和编辑时动态地将每个模型与适当的ModelForm绑定。 所以我想要的是
url(r'^(?P<model_name>/$', "ci_models.views.present", name="ci_models"),
url(r'^(?P<model_name>/add/$', "ci_models.views.model_name_add", name="ci_models-add"),
url(r'^(?P<model_name>/edit/(?P<model_id>\d+)/$', "ci_models.views.model_name_edit_delete", name="ci_models-model_name-edit-delete" ),
我可以在视图中使用
从模型中提取模型类ct = ContentType.objects.get(model=model_name)
Model = ct.model_class()
在此之后,我可以对Model的数据库进行查询。但是如果我想根据从ct_model_class()得到的模型选择一个模型形式。这可能吗?
答案 0 :(得分:0)
快速而肮脏的解决方案是使用模型类作为键和表单作为值的dict - 但是你可能想要扩展一点并写一些更通用的东西 - 有点像admin.ModelAdmin
- 那个也可以处理你的意见。