Django Rest框架:序列化程序的转换模型
我有一个invite模型,它将邀请者映射到被邀请者Django Rest框架:序列化程序的转换模型,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我有一个invite模型,它将邀请者映射到被邀请者user和映射到_user。但是,我只需要将用户列表返回给客户端。如何将Invite对象的查询集(仅id、user和to_user)转换为映射到该to_user字段的用户查询?这是我到目前为止所拥有的 class Invite(AbstractBaseModel): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_dele
user
和映射到_user
。但是,我只需要将用户列表返回给客户端。如何将Invite对象的查询集(仅id
、user
和to_user
)转换为映射到该to_user字段的用户查询?这是我到目前为止所拥有的
class Invite(AbstractBaseModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='invites',
verbose_name=_('User'))
to_user = models.OneToOneField(settings.AUTH_USER_MODEL,
unique=True, # Each user can only redeem one code.
on_delete=models.CASCADE,
related_name='invitees',
error_messages={'unique': _('You\'ve already claimed an invite.')},
verbose_name=_('To User'))
class InvitesViewSet(viewsets.ViewSet):
permission_classes = [IsAuthenticated, ]
def list(self, request):
"""
List all people invited by the request.user
"""
invite_objects = Invite.objects.filter(user=request.user)
invited_users = ??? (Users.objects.filter(id__in=invite_objects.to_user.id?) <- ?
serializer = UserSerializer(invited_users, many=True)
return Response(serializer.data)
类邀请(AbstractBaseModel):
user=models.ForeignKey(settings.AUTH\u user\u MODEL,
在_delete=models.CASCADE上,
相关_name='invests',
详细名称=(用户)
to_user=models.OneToOneField(settings.AUTH_user_MODEL,
unique=True,#每个用户只能兑换一个代码。
在_delete=models.CASCADE上,
相关的_name='investees',
错误\u messages={'unique':\u('您已经申请了邀请')},
详细名称=(用户名称)
类InvitesViewSet(ViewSet.ViewSet):
权限\u类=[IsAuthenticated,]
def列表(自我、请求):
"""
列出请求邀请的所有人员。用户
"""
invite\u objects=invite.objects.filter(user=request.user)
受邀用户=???(Users.objects.filter(id\u-in=invite\u-objects.to\u-user.id?)我的解决方案:
invite_user_ids = Invite.objects.filter(user=request.user).values_list('to_user', flat=True)
invited_users = Users.objects.filter(id__in=invite_user_ids)
现在还不打算标记为已回答,是否有人对此解决方案有任何问题