Apologies - that issue I filed was incorrect. However, I am still experiencing a KeyError on 'extracted_data' in line 206 of rest_framework/serializers.py in get_fields. The following is what I have and I can't see why it isn't working:
class MasterSerializer(serializers.ModelSerializer):
class Meta:
model = Master
extracted_data = serializers.Field(source='get_tabs_meta')
statistics = serializers.Field()
fields = ('id', 'sha256', 'file_size', 'file_type', 'file_subtype', 'extracted_data', 'valid', 'validated', 'statistics')
class Master(models.Model):
id = models.BigIntegerField(primary_key=True)
sha256 = BlobField(unique=True)
file_size = models.BigIntegerField()
file_type = models.CharField(max_length=512)
file_subtype = models.CharField(max_length=512)
meta = BlobField()
stats = BlobField()
valid = models.BooleanField()
validated = models.BooleanField()
_tc_meta = None
_stat_meta = None
class Meta:
db_table = u'master'
def tc_meta(self):
if self._tc_meta is None:
tc_meta = meta_pb2.metadata_t()
tc_meta.ParseFromString(base64.b16decode(self.meta))
self._tc_meta = protobuf_json.pb2json(tc_meta)
return self._tc_meta
tc_meta.allow_tags = True
def statistics(self):
if self._stat_meta is None:
stat_meta = stat_pb2.statistics_t()
stat_meta.ParseFromString(base64.b16decode(self.stats))
self._stat_meta = protobuf_json.pb2json(stat_meta)
return self._stat_meta
def get_tabs_meta(self):
tm = self.tc_meta()
return tm
class MasterDetail(generics.RetrieveAPIView):
queryset = Master.objects.all()
lookup_field = 'sha256'
serializer_class = MasterSerializer