Skip to content

Instantly share code, notes, and snippets.

@minism
Created November 8, 2012 20:26
Show Gist options
  • Save minism/4041352 to your computer and use it in GitHub Desktop.
Save minism/4041352 to your computer and use it in GitHub Desktop.
tastypie ModelResource that respects 'blank' attribute on Model fields
class BaseModelResource(ModelResource):
@classmethod
def get_fields(cls, fields=None, excludes=None):
"""
Unfortunately we must override this method because tastypie ignores 'blank' attribute
on model fields.
Here we invoke an insane workaround hack due to metaclass inheritance issues:
http://stackoverflow.com/questions/12757468/invoking-super-in-classmethod-called-from-metaclass-new
"""
this_class = next(c for c in cls.__mro__ if c.__module__ == __name__ and c.__name__ == 'BaseModelResource')
fields = super(this_class, cls).get_fields(fields=fields, excludes=excludes)
if not cls._meta.object_class:
return fields
for django_field in cls._meta.object_class._meta.fields:
if django_field.blank == True:
res_field = fields.get(django_field.name, None)
if res_field:
res_field.blank = True
return fields
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment