Reputation: 1603
I'm using
django-rest-framework-mongoengine==3.3.0
mongoengine==0.10.5
class MyModel2(mongoengine.EmbeddedDocument):
sn = mongoengine.StringField()
# more fields
class MyModel(mongoengine.DynamicDocument):
field1 = mongoengine.StringField(unique=True)
field2 = mongoengine.DateTimeField()
field3 = mongoengine.BooleanField()
field4 = mongoengine.EmbeddedDocumentField(MyModel2)
and here is the serializer
from rest_framework_mongoengine.serializers import DynamicDocumentSerializer
class MyModelSerializer(DynamicDocumentSerializer):
class Meta:
model = MyModel
fields = ('field1', 'field4')
but in my api returns only field1, field2, field3
. even after explicitly mentioning the field4
class myListAPI(generics.ListAPIView):
model = MyModel
serializer_class = MyModelSerializer
queryset = MyModel.objects.all()
Upvotes: 1
Views: 182
Reputation: 1855
Well, you have to create a separate serializer for that and include in your main serializer
create Model2 serializer
class MyModel2Serializer(DynamicDocumentSerializer):
class Meta:
model = MyModel2
fields = ('sn',)
and include in your serializer
class MyModelSerializer(DynamicDocumentSerializer):
field4 = MyModel2Serializer()
class Meta:
model = MyModel
fields = ('field1', 'field4')
Upvotes: 1