Binary Lion Studios

I code for fun and for food.

Dynamic model form

Create a ModelForm for a given model and list of fields.

1
2
3
4
5
6
7
def model_to_modelform(cls, fs):
    from django import forms
    class DynaForm(forms.ModelForm):
        class Meta:
            model = cls
            fields = fs
    return DynaForm

Now use it.

1
2
3
# perhaps use it in a view
form = model_to_modelform(User, ('username', 'email',))
dynamic_form = form(instance=request.user)

Sources:

http://www.agmweb.ca/blog/andy/2249/