我们如何允许用户在Django中为表单创建自己的字段?

Aur*_*ora 5 django django-models django-forms django-views

这可能是一个稍微宽泛的问题,但实质上,我想允许我的网站的用户能够向表单添加字段(文本或字段),以便其他用户可以填写它们.我应该如何构建我的模型/表单/视图以允许这种类型的自定义?谢谢!

tux*_*fly 1

使用元类:

from django.forms import BaseForm

fields = {
    'name': forms.CharField(max_length=50),
    'id': forms.IntegerField()
}

type('CustomForm', (BaseForm,), { 'base_fields': fields })
Run Code Online (Sandbox Code Playgroud)

要获得更全面的方法,请使用 django-forms-builder:

http://django-forms-builder.readthedocs.org/en/latest/

夹层也支持这一点:

http://mezzanine.jupo.org/docs/packages.html#module-mezzanine.forms