如何在 Post 实例中包含用户图像
How to include user's image in Post instance
我认为 returns 我每 post 我想做的是将用户的头像图像包含在 post.
序列化器
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
查看
@api_view(['GET'])
def getPost(request):
post = Post.objects.all().order_by('-date_posted')
serializer = PostSerializer(post, many=True)
return Response(serializer.data)
用户模型
class User(AbstractBaseUser):
email = models.EmailField(verbose_name="email", max_length=60, unique=True)
username = models.CharField(max_length=30, unique=True)
avatar = models.ImageField(default='default.jpg')
Post 型号
class Post(models.Model):
author = models.ForeignKey(User, on_delete=CASCADE)
trade = models.CharField(max_length=100)
trade_description = models.TextField(null=True)
我怎样才能使 returns 视图 post 也包括相关用户的头像图像?用户的头像字段仅包含一个 link 到托管图像的 amazon s3 存储桶
有两种方法
1.嵌套序列化程序
它给你嵌套响应
为用户声明一个序列化器,然后将其包含在您的 post 序列化器中:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('avatar', ...)
class PostSerializer(serializers.ModelSerializer):
author = UserSerializer()
class Meta:
model = Post
fields = '__all__'
2。使用来源
它给你平淡的反应
class PostSerializer(serializers.ModelSerializer):
author_avatar = serializers.ImageField(source='author.avatar')
class Meta:
model = Post
fields = ('author_avatar', ...)
我认为 returns 我每 post 我想做的是将用户的头像图像包含在 post.
序列化器
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
查看
@api_view(['GET'])
def getPost(request):
post = Post.objects.all().order_by('-date_posted')
serializer = PostSerializer(post, many=True)
return Response(serializer.data)
用户模型
class User(AbstractBaseUser):
email = models.EmailField(verbose_name="email", max_length=60, unique=True)
username = models.CharField(max_length=30, unique=True)
avatar = models.ImageField(default='default.jpg')
Post 型号
class Post(models.Model):
author = models.ForeignKey(User, on_delete=CASCADE)
trade = models.CharField(max_length=100)
trade_description = models.TextField(null=True)
我怎样才能使 returns 视图 post 也包括相关用户的头像图像?用户的头像字段仅包含一个 link 到托管图像的 amazon s3 存储桶
有两种方法
1.嵌套序列化程序
它给你嵌套响应
为用户声明一个序列化器,然后将其包含在您的 post 序列化器中:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('avatar', ...)
class PostSerializer(serializers.ModelSerializer):
author = UserSerializer()
class Meta:
model = Post
fields = '__all__'
2。使用来源
它给你平淡的反应
class PostSerializer(serializers.ModelSerializer):
author_avatar = serializers.ImageField(source='author.avatar')
class Meta:
model = Post
fields = ('author_avatar', ...)