首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态创建ModelForm

动态创建ModelForm
EN

Stack Overflow用户
提问于 2014-12-16 13:28:26
回答 1查看 123关注 0票数 0

我必须和modelForms一样,我只想做一个将军,而不是他们。请参阅下面的代码示例

代码语言:javascript
复制
class CreateStudent(forms.ModelForm):
    class Meta:
        model = Student
        fields = [field.name for field in model._meta.fields if not field.name == 'id']


class CreateGroup(forms.ModelForm):
    class Meta:
        model = Group
        fields = [field.name for field in model._meta.fields if not field.name == 'id']

我想做这样的事:

代码语言:javascript
复制
class CreateItem(forms.ModelForm):
    class Meta:
        model = custom_model_name #here I need to pass model from request somehow
        fields = [field.name for field in model._meta.fields if not field.name == 'id']

我想要有像/create/Group/create/User这样的链接,我想传递url的最后一部分(GroupUser)来形成构造函数,并在此基础上生成表单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-16 14:33:49

你不能这样做。元数据是在定义时计算的,因此不能根据运行时的请求来更改它。

然而,既然您只有有限的模型,并且没有自定义表单本身,为什么不定义表单,然后使用字典来使用正确的表单呢?

代码语言:javascript
复制
def create(request, model_class):
    forms = {
        'user': UserForm,
        'group': GroupForm
    }


    form_class = forms[model_class]
    ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27505779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档