'Resolve the \'fields\' argument that should be used for generating filters on the
filterset. This is \'Meta.fields\' sans the fields in \'Meta.exclude\'.'

@classmethod
def get_fields(cls):

    model = cls._meta.model
    fields = cls._meta.fields
    exclude = cls._meta.exclude
    assert (not ((fields is None) and (exclude is None))), (u"Setting    'Meta.model'    without    either    'Meta.fields'    or    'Meta.exclude'    has    been    deprecated    since    0.15.0    and    is    now    disallowed.    Add    an    explicit    'Meta.fields'    or    'Meta.exclude'    to    the    %s    class." % cls.__name__)
    if ((exclude is not None) and (fields is None)):
        fields = ALL_FIELDS
    if (fields == ALL_FIELDS):
        fields = get_all_model_fields(model)
    exclude = (exclude or [])
    if (not isinstance(fields, dict)):
        fields = [(f, [u'exact']) for f in fields if (f not in exclude)]
    else:
        fields = [(f, lookups) for (f, lookups) in fields.items() if (f not in exclude)]
    return OrderedDict(fields)
