我正在尝试为我的模型创建通用视图,而我却一直在动态创建一个模型。有一种方法可以通过将模型的名称作为字符串来创建模型吗?
答案 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()
# ...