我有一个项目模型的序列化程序。
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和用户串行器。
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。我该怎么做呢?如果这是一个新手问题,我很抱歉,我只是一个初学者。谢谢。
发布于 2016-08-07 13:33:10
您可以使用DRF的source属性来遍历外键字段。
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') https://stackoverflow.com/questions/38803930
复制相似问题