首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在django rest框架中显示相关字段的不同字段

问在django rest框架中显示相关字段的不同字段
EN

Stack Overflow用户
提问于 2016-08-06 19:44:21
回答 1查看 1.5K关注 0票数 2

我有一个项目模型的序列化程序。

代码语言:javascript
复制
class Item(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=150)
    body = models.TextField(blank=True)
    image = models.ImageField(upload_to=get_upload_file_name, blank=True)

class ItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = Item
        fields = ('id', 'user', 'title', 'body', 'image')

    def create(self, validated_data):
        item = Item.objects.create(
            user=self.validated_data['user'],
            title=self.validated_data['title'],
            body=self.validated_data['body'],
            image=self.validated_data['item_image']
        )
        return item

和用户串行器。

代码语言:javascript
复制
class CustomUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = CustomUser
        fields = (
            'id', 'email', 'password', 'username', 'first_name', 'last_name',
        )
        extra_kwargs = {
            'password': {'write_only': True},
            'id': {'read_only': True}
        }

    def create(self, validated_data):
        user = CustomUser.objects.create(
            email=validated_data['email'],
            username=validated_data['email'],
            first_name=validated_data['first_name'],
            last_name=validated_data['last_name'],
        )
        user.set_password(validated_data['password'])
        user.save()
        return user

但是,在user字段的ItemSerialzer中,我希望显示用户的id、first_name和last_name。我该怎么做呢?如果这是一个新手问题,我很抱歉,我只是一个初学者。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-08-07 13:33:10

您可以使用DRF的source属性来遍历外键字段。

代码语言:javascript
复制
class ItemSerializer(serializers.ModelSerializer):
  user_id = serializers.CharField(source="user.id")
  first_name = serializers.CharField(source="user.first_name")
  last_name = serializers.CharField(source="user.last_name")

  class Meta:
    model = Item
    fields = ('id', 'user', 'title', 'body', 'image','user_id', 'first_name', 'last_name')   
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38803930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档