Django中的通用CRUD视图
我正在尝试为我的模型创建通用视图,但在动态创建模型表单时遇到了困难。有没有办法仅通过模型的名称字符串来创建一个模型表单呢?
1 个回答
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()
# ...