- November 4, 2007
- newforms fields ignore
- 2 (after 2 ratings)
I use this snippet when creating newforms with form_for_model and form_for_instance. Both do not have an argument that lets you filter out fields easily so I wrote this instead.
form_class = form_for_instance(obj, fields=ignore_fields(model_class, ['field_name1']))
1 2 3 4 5 6 7 8 9 10
def ignore_fields(model, field_names=): """ Returns a list containing all field-names of a form, except for the field-names in field_names. Use with form_for_*. """ ret =  for field in model._meta.fields + model._meta.many_to_many: if not (field.name in field_names): ret.append(field.name) return ret