code: def all_characters(self):
          '''
          Returns a queryset of all characters associated with this node and its descendants,
          excluding any duplicates.
          '''
          qs = self.assoc_characters.all()
          for node in self.get_descendants():
              qs2 = node.assoc_characters.all()
              qs = qs.union(qs2).distinct('pk')
          return qf all_characters(self):
          '''
          Returns a queryset of all characters associated with this node and its descendants,
          excluding any duplicates.
          '''
          qs = self.assoc_characters.all()
          for node in self.get_descendants():
              qs2 = node.assoc_characters.all()
              qs = qs.union(qs2).distinct('pk')
          return qs
docs: Returns a queryset of all characters associated with this node and its descendants,
          excluding any duplicates.