【发布时间】:2022-01-27 10:51:22
【问题描述】:
我有一个示例模型,它与用户模型和博客模型具有 fk 关系。现在我有一个 get api,它只需要显示用户的某些字段。
我的模特:
class Example(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
null=True,
related_name="user_examples",
)
blog = models.ForeignKey(
Blog,
on_delete=models.CASCADE,
null=True,
related_name="blog_examples",
)
/................./
现在我的看法:
class ExampleView(viewsets.ModelViewSet):
queryset = Example.objects.all()
serializer_class = ExampleSerializer
def list(self, request, *args, **kwargs):
id = self.kwargs.get('pk')
queryset = Example.objects.filter(blog=id)
serializer = self.serializer_class(queryset,many=True)
return Response(serializer.data,status=200)
我的序列化器:
类 ExampleSerializer(serializers.ModelSerializer):
class Meta:
model = Example
fields = ['user','blog','status']
depth = 1
现在,当我用这个 get api 调用时,我得到了所有必需的示例对象,但所有不必要的用户字段,如密码、组等。我想要的只是用户的电子邮件和全名。博客也是如此,我只想要某些字段而不是全部。现在如何以最佳方式实现这一目标?
【问题讨论】:
标签: django api django-rest-framework django-serializer