关于django的通用CRUD视图

时间:2011-10-20 03:00:02

标签: python django

我正在尝试为我的模型创建通用视图,而我却一直在动态创建一个模型。有一种方法可以通过将模型的名称作为字符串来创建模型吗?

1 个答案:

答案 0 :(得分:4)

您可以通过在视图的本地范围内定义模型表单的类,然后直接创建它的实例来完成此操作。您只需确保根据其名称接收模型的类。使用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()
    # ...