Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Assignee(EmbeddedDocument):
- id = ObjectIdField(primary_key=True)
- assignee_email = EmailField(required=True)
- assignee_first_name = StringField(required=True)
- assignee_last_name = StringField()
- assignee_time = DateTimeField(required=True, default=datetime.datetime.utcnow)
- user = ReferenceField('MongoUser', required=True)
- user_id = ObjectIdField(required=True)
- class MongoUser(Document):
- email = EmailField(required=True, unique=True)
- password = StringField(required=True)
- first_name = StringField(required=True)
- last_name = StringField()
- assignees= EmbeddedDocumentListField(Assignee)
- class MongoUserSerializer(DocumentSerializer):
- assignees = AssigneeSerializer(many=True)
- class Meta:
- model = MongoUser
- fields = ('id', 'email', 'first_name', 'last_name', 'assignees')
- depth = 2
- class AssigneeSerializer(EmbeddedDocumentSerializer):
- class Meta:
- model = Assignee
- fields = ('assignee_first_name', 'assignee_last_name', 'user')
- depth = 0
- class AssigneeSerializer(EmbeddedDocumentSerializer):
- class Meta:
- model = Assignee
- fields = ('assignee_first_name', 'assignee_last_name', 'user_id')
- depth = 0
- fields = ('assignee_first_name', 'assignee_last_name', 'user_id')
- from rest_framework_mongoengine.viewsets import ModelViewSet
- class MongoUserViewSet(ModelViewSet):
- def get_queryset(self):
- queryset = MongoUser.objects.all()
- # Set up eager loading to avoid N+1 selects
- queryset.select_related(max_depth=3)
- return queryset
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement