Skip to content

Instantly share code, notes, and snippets.

@mgronhol
Created December 2, 2014 23:07
Show Gist options
  • Save mgronhol/fc508d4572034dc4d15d to your computer and use it in GitHub Desktop.
Save mgronhol/fc508d4572034dc4d15d to your computer and use it in GitHub Desktop.
Django form generator
def generic_create_form(name, modelclass):
model_fields = [field.name for field in modelclass._meta.fields]
class Meta:
pass
setattr(Meta,"model", modelclass)
setattr(Meta,"fields", model_fields)
attrs = {'__module__': '', 'Meta': Meta}
model = type( name, (ModelForm,), attrs )
def formCreator():
Form = modelform_factory(modelclass, model, fields = model_fields )
return Form
return model, formCreator
### usage example ###
CustomerForm, getCustomerForm = generic_create_form('CustomerForm', Customer)
ProjectForm, getProjectForm = generic_create_form('ProjectForm', Project)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment