def categories(self, *category_slugs):
        categories_field = getattr(self.model, 'categories', None)
        if categories_field is None:
            raise AttributeError("The {0} does not include CategoriesEntryMixin".format(self.model.__name__))

        if issubclass(categories_field.rel.model, TranslatableModel):
            # Needs a different field, assume slug is translated (e.g django-categories-i18n)
            filters = {
                'categories__translations__slug__in': category_slugs,
            }

            # TODO: should the current language also be used as filter somehow?
            languages = self._get_active_rel_languages()
            if languages:
                if len(languages) == 1:
                    filters['categories__translations__language_code'] = languages[0]
                else:
                    filters['categories__translations__language_code__in'] = languages

            return self.filter(**filters).distinct()
        else:
            return self.filter(categories__slug=category_slugs)
Return the version of Neo4j.
dataset/ETHPy150Open edoburu/django-fluent-blogs/fluent_blogs/managers.py/EntryQuerySet.categories--crossover with--dataset/ETHPy150Open nigelsmall/py2neo/py2neo/database/__init__.py/DBMS.kernel_version