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.
Typical use:
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
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.