@raise_if_unsaved
    def get_next_sibling(self, *filter_args, **filter_kwargs):
        qs = self._tree_manager.filter(*filter_args, **filter_kwargs)
        if self.is_root_node():
            qs = self._tree_manager._mptt_filter(
                qs,
                parent=None,
                tree_id__gt=self._mpttfield('tree_id'),
            )
        else:
            qs = self._tree_manager._mptt_filter(
                qs,
                parent__pk=getattr(self, self._mptt_meta.parent_attr + '_id'),
                left__gt=self._mpttfield('right'),
            )

        siblings = qs[:1]
        return siblings and siblings[0] or None
Returns this model instance's next sibling in the tree, or
dataset/ETHPy150Open django-mptt/django-mptt/mptt/models.py/MPTTModel.get_next_sibling