如何获取特定领域的对象

时间:2021-02-24 16:14:25

标签: django django-rest-framework

在以下代码中,User.objects 返回 "url","username","email","groups"

from django.contrib.auth.models import User, Group
class UserViewSet(viewsets.ModelViewSet):
    #     TODO return only usernames and urls without emails for privacy purpeses
    # User.objects.username
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer
    permission_classes = [permissions.IsAuthenticated]

但我也为用户头像创建了以下模型


class TheUserProfiel(models.Model):
    TheUser = models.OneToOneField(User, on_delete=models.CASCADE)
    avatar = models.ImageField(blank=True, null=True)
    personalityInformation = models.CharField(
        max_length=9999999, null=True, blank=True)
    created_date = models.DateTimeField(default=timezone.now)

因此,如何使 UserViewSet 返回所有这些 "url","username","email","groups" 以及同一视图中的 "avatar" 字段

  • 我之前尝试过创建两个视图并在前端将它们组合起来,但它变得非常复杂。

1 个答案:

答案 0 :(得分:0)

您只需更新 UserSerializer

serializer_class = UserSerializer

在序列化程序中,您已经定义了 UserSerializer。在该序列化程序中更新元类的字段属性以包含头像。

UserSerializer(...):
     ...
     class Meta:
         ...
         fields = (....., 'avatar')
相关问题