def filter_by_content(self, obj): if isinstance(obj, models.QuerySet): klass = obj.model is_qs = True else: klass = obj.__class__ is_qs = False if Content.is_content_model(klass): fieldlookup = Content.get_content_fieldlookup(klass) if fieldlookup is None: fieldlookup = '%s_content' % utils.get_short_model_name_lower(klass).replace('.', '_') filters = {} if is_qs: filters['%s__in' % fieldlookup] = obj else: filters[fieldlookup] = obj return self.filter(**filters).distinct() return self.none()
def get_fieldlookup(cls): return '%s__content' % utils.get_short_model_name_lower(cls).replace('.', '_')