umutbozkurt/django-rest-framework-mongoengine

I want to add dynamic fields in document. If field is not defined in schema.

varunajmera0 opened this issue · 0 comments

Error - if document._dynamic: AttributeError: 'collections.OrderedDict' object has no attribute '_dynamic'

class Conversation(DynamicDocument):
poll_name = fields.StringField(required=True)
poll_votes = fields.IntField(required=True)

class PollSerializer(serializers.DynamicDocumentSerializer):
class Meta:
model = Conversation
fields = 'all'

class PollView(APIView):
permission_classes = [permissions.AllowAny]

def get(self, request):
    serializer = PollSerializer(Conversation.objects.all(), many=True)
    response = {"polls": serializer.data}
    return Response(response, status=status.HTTP_200_OK)

def post(self, request, format=None):
    data = request.data
    tag = data.pop("varun")
    serializer = PollSerializer(data=data)
    if serializer.is_valid():
        poll = Conversation(**data)
        print("varun")
        
        poll.save()
        response = serializer.data
        return Response(response, status=status.HTTP_200_OK)
    return Response(serializer.data, status=status.HTTP_200_OK)