Tik*_*aba 2 django django-rest-framework
我有这个 Item 模型的序列化程序。
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
Run Code Online (Sandbox Code Playgroud)
和用户序列化程序。
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
Run Code Online (Sandbox Code Playgroud)
但是在 ItemSerialzer 中,对于用户字段,我想显示用户的 id、first_name 和 last_name。我怎样才能做到这一点?如果这是一个菜鸟问题,我很抱歉,我只是一个初学者。谢谢你。
您可以使用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')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1497 次 |
最近记录: |