'Get all filters for the filterset. This is the combination of declared and
generated filters.'

@classmethod
def get_filters(cls):

    if (not cls._meta.model):
        return cls.declared_filters.copy()
    filters = OrderedDict()
    fields = cls.get_fields()
    undefined = []
    for (field_name, lookups) in fields.items():
        field = get_model_field(cls._meta.model, field_name)
        if (field is None):
            undefined.append(field_name)
        if isinstance(field, ForeignObjectRel):
            filters[field_name] = cls.filter_for_reverse_field(field, field_name)
            continue
        for lookup_expr in lookups:
            filter_name = get_filter_name(field_name, lookup_expr)
            if (filter_name in cls.declared_filters):
                filters[filter_name] = cls.declared_filters[filter_name]
                continue
            if (field is not None):
                filters[filter_name] = cls.filter_for_field(field, field_name, lookup_expr)
    undefined = [f for f in undefined if (f not in cls.declared_filters)]
    if undefined:
        raise TypeError((u"'Meta.fields'    contains    fields    that    are    not    defined    on    this    FilterSet:    %s" % u',    '.join(undefined)))
    filters.update(cls.declared_filters)
    return filters
