from django.views.generic import FormView
class MyView(FormView):
...
def get_form_class(self):
model = MultipleChoiceQuestion
if some_condition:
model = EssayQuestion
return get_question_form(model)
...
from django.forms.models import modelform_factory
if condition:
model = models.MultipleChoiceQuestion
else:
model = models.EssayQuestion
runtimeform_class = modelform_factory(model, fields=(...), )
是的,你可以。请看一下django文档中的Form Inheritance。在
您可以为
EssayQuestion
创建一个新表单,并在Meta
内部类中继承MCQuestionForm.Meta
:你是说在运行时?是的,你可以。下面是一个简单的方法:
然后在您的视图中,您可以重写
get_form_class
方法,并使用该函数返回带有您想要的任何模型的类。在如果您使用的是基于函数的视图,它可能看起来像这样:
^{pr2}$如果使用的是基于类的视图,则可能如下所示:
我想你在找
modelform_factory
https://docs.djangoproject.com/en/1.10/ref/forms/models/#modelform-factory相关问题 更多 >
编程相关推荐