title: How can I serialize a queryset from an unrelated model as a nested serializer?
body: <p>I'm trying to add a nested serializer to an existing serializer based on some criteria of the parent model, not a foreign key. The use case is to return a 'Research' object with an array of 'ResearchTemplate' objects that are identified by filtering on a Postgres ArrayField.</p>
  <p><strong>Models</strong></p>
  <pre class="lang-py prettyprint-override">
  
  class Research(TimeStampedModel):
      category = models.CharField(max_length=100, choices=RESEARCH_TEMPLATE_CATEGORIES, default='quote')
      body = models.CharField(max_length=1000, blank=True, default='') #The body of text comprising the nugget
      additionaldata = JSONField(null=True) # all the varying values to be merged into a wrapper
  
      def __str__(self):
          return self.body
  
      class Meta:
          ordering = ('created',)
  
  class ResearchTemplate(TimeStampedModel):
      template = models.TextField(blank=True, default='')
      category = models.CharField(max_length=100, choices=RESEARCH_TEMPLATE_CATEGORIES, default='quote')
      mergefields = ArrayField(models.CharField(max_length=200), blank=True)
  
      def save(self, *args, **kwargs):
          merges = re.findall("{{(.*?)}}", self.template) #get all the template names from within the mustaches
          self.mergefields = list(set(merges)) #TODO: Make Unique
          super(TimeStampedModel, self).save(*args, **kwargs)
  
      def __str__(self):
          return self.wrapper
  
      class Meta:
          ordering = ('created',)
  
  </pre>
  <p><strong>Serializers</strong></p>
  <pre class="lang-py prettyprint-override">
  
  class ResearchSerializer(serializers.ModelSerializer):
          templates = ResearchTemplateSerializer(many=True)
  
          class Meta:
              model = Research
              fields = ('id', 'created', 'speaker', 'body', 'templates')
  
  class ResearchTemplateSerializer(serializers.RelatedField):
          def get_queryset(self, values):
              return ResearchTemplate.objects.filter(mergefields__contained_by=['django']) #This must an array of keys from the Research object's JSON field
  
          class Meta:
              model = ResearchTemplate
              fields = ('id', 'template')
  </pre>
  <p>I've been able to nest serializers when there is a foreign key mapping them, however I am unable to do so with a custom queryset. Perhaps I'm not thinking about this properly, and I require some form of 'relationship' field on the Research model.</p>
  <p>How can I nest a serialized list of all rows that are returned from a filter with values specified from the parent model?</p>