序列化中的嵌套字段在Django REST框架中使用自定义字段

pagala2008

我正在尝试将foreikey序列化为另一个名称。例如:

class User(models.Model):
    user_name = models.CharField(..)

class Blog(models.Model):
    user = models.ForeignKey(User, ...)
    title = models.CharField(...)


class BlogSerializer(serializers.ModelSerializer):
   class Meta:
        model = Blog
        fields = '__all__'

使用时BlogSerializer(blog_instance).data可以获取数据:

{
  "id": 1,
  "user": 1,
  "user_info": {"id": 1, "user_name": "admin"},
  "title": "hello world"
}

加布里埃尔·穆伊(Gabriel Muj)

我认为您只想为用户提供不同的表示形式,就可以通过以下技巧来改变它:

class BlogSerializer(serializers.ModelSerializer):

    class Meta:
        model = Blog
        fields = '__all__'

    def to_representation(self, instance):
        ret = super().to_representation(instance)
        # here you override the 'user' field, you can either use a dictionary
        ret['user'] = {"id": instance.user.id, "user_name": instance.user.user_name}

        # or better yet create an actual UserSerializer and get that representation, eg.
        # ret['user'] = UserSerializer(context=self.context).to_representation(instance.user)

        return ret

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django访问序列化程序中的嵌套对象字段

Django Rest Framework 序列化自定义字段

如何在 Django REST 框架中的自定义序列化程序字段中访问请求对象?

Django REST序列化程序和自定义模型字段中的其他属性

如何在Django Rest Framework序列化程序中自定义字段

如何在Django中使用多个嵌套字段覆盖序列化器中的create方法?

序列化 Django Rest 框架中过滤的相关字段

用于 Django 嵌套子字段的嵌套序列化程序

如何在使用嵌套序列化器的Django Restframework序列化器中动态更改字段映射?

Django Rest Framework-如何序列化嵌套字段

嵌套序列化器字段 Django Rest Framework

在带有嵌套模型Django的嵌套序列化程序中包含额外字段

REST中的多对多字段和嵌套序列化器:覆盖嵌套序列化器不会在Django中创建嵌套对象

Django REST Framework序列化程序中的嵌套注释字段

嵌套关系序列化程序中的Django Rest Framework模型ID字段

Django Rest Framework-如何在序列化器中嵌套多个字段?

如何自定义嵌套序列化程序中的字段?

在 django 序列化程序中排除嵌套模型字段

Django REST-rest_auth自定义字段未序列化

模型字段(在django中)和序列化器字段(在django rest框架中)之间的区别

Django:如何在嵌套序列化程序中更改字段名称

序列化DRF中的自定义相关字段

Django REST-从自定义to_internal_value中运行字段验证以进行序列化

django rest 框架中的嵌套序列化器数据

嵌套序列化程序中的Django Rest Framework自定义URL

从序列化程序自定义字段上的Django Rest Order?

DJANGO:如何编写自定义序列化器,以从相关模型中添加字段?

如何反序列化嵌套数组中的字段

在嵌套序列化程序的字段中访问序列化程序实例