def get_roles(self):
        """
        Return the m2m relations connecting me to creators.

        There's some publishing-related complexity here. The role relations
        (self.creators.through) connect to draft objects, which then need to
        be modified to point to visible() objects.

        """

        creator_ids = self.get_creators().values_list('id', flat=True)

        return self.creators.through.objects.filter(
            work=self.get_draft(),
            creator_id__in=creator_ids,
        ).select_related('role')