Reputation: 862
I am very new to django rest framework. I have two models ModelA and ModelB.
I have a ModelB searilzer to display all the fields in get request.
Because of some reasons ModelA and ModelB
are not related by FK
but ModelA.objects.get(modelB.field1=modelA.pk)
this will return single data.
class ModelASerailzer(serializers.ModelSerializer):
class Meta:
model = ModelA
fields = ['f1','f2']
class ModelBSerailzer(serializers.ModelSerializer):
# I want to do something like this here
extra_field = ModelA.objects.get(modelB.field1=modelA.pk).f1 # this will return the data in shell
#and normal django view but I don't know how to implement this in django rest ?
class Meta:
model = ModelB
fields = ['field1','field2', 'extra_field']
I tried like this
class ModelBSerializer(serializers.ModelSerializer):
extra_field = serializers.SerializerMethodField()
def get_extra_field(self, member):
return ModelA.objects.get(pk=member.field).f1
class Meta:
model = ModelB
fields = ['field1','field2', 'extra_field']
With this I got this error UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
ModelA.objects.get(pk=member.field).f1
is a FileField.
Upvotes: 1
Views: 4432