def _get_related_fields_by_name(self, model): related_fields = {} if hasattr(model, '_meta'): field_names = get_all_field_names(model) for field_name in field_names: field = get_field_by_name(model, field_name) if (not field.auto_created or field.concrete) and field.rel: related_fields[field.name] = field return related_fields
def _get_model_fields(self, obj=None): """ Get _all_ of the fields on a Django model """ if not obj: obj = self.Meta.model ## Django returns non-fields, like "id", so we filter them out field_names = get_all_field_names(obj) real_fields = [] for field_name in field_names: if hasattr(obj, field_name): real_fields.append(field_name) return real_fields