Created
November 8, 2012 20:26
-
-
Save minism/4041352 to your computer and use it in GitHub Desktop.
tastypie ModelResource that respects 'blank' attribute on Model fields
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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