Django 无法在 SerializerMethodField() 中 retrieve/fetch versatileImage link (Cropped URL)
Django Not able to retrieve/fetch versatileImage link (Cropped URL) in SerializerMethodField()
class GetUserImageOneSerializer(serializers.ModelSerializer):
class Meta:
image_one = VersatileImageFieldSerializer(
sizes=[
('medium_square_crop', 'crop__400x400'),
]
)
model = UserImage
fields = ('image_one',)
class ChatUserSerializer(serializers.ModelSerializer):
chatImage = serializers.SerializerMethodField()
class Meta:
model = Chat
fields = ('roome_name','chat_user_one','chat_user_two','lastUpdated','chatImage')
def get_chatImage(self, obj):
image=UserImage.objects.filter().first() //(for Test)
serializer = GetUserImageOneSerializer(image)
return serializer.data
这里我试图在聊天序列化器 ('ChatImage') 中传递用户图像。为了在 UI 中获得更好的行为,我需要方形裁剪图像,所以我尝试使用嵌套序列化器 ('GetUserImageOneSerializer' 在 'ChatUserSerializer' 内)。
但我只是变得正常 URL 。
你能帮我找到更好的方法来实现我的想法吗:)
输出:
[
{
"roome_name": "BISM1000BISM1000",
"chat_user_one": 6,
"chat_user_two": 5,
"lastUpdated": "2021-12-11T10:29:21.589947Z",
"chatImage": {
"image_one": "/media/userimage/team-1.jpg"
}
}
]
我得到了解决方案
我在图像序列化器中出错
它应该看起来像这样
class GetUserImageOneSerializer(serializers.ModelSerializer):
image_one = VersatileImageFieldSerializer(
sizes=[
('medium_square_crop', 'crop__400x400'),
]
)
class Meta:
model = UserImage
fields = ('image_one',)
class GetUserImageOneSerializer(serializers.ModelSerializer):
class Meta:
image_one = VersatileImageFieldSerializer(
sizes=[
('medium_square_crop', 'crop__400x400'),
]
)
model = UserImage
fields = ('image_one',)
class ChatUserSerializer(serializers.ModelSerializer):
chatImage = serializers.SerializerMethodField()
class Meta:
model = Chat
fields = ('roome_name','chat_user_one','chat_user_two','lastUpdated','chatImage')
def get_chatImage(self, obj):
image=UserImage.objects.filter().first() //(for Test)
serializer = GetUserImageOneSerializer(image)
return serializer.data
这里我试图在聊天序列化器 ('ChatImage') 中传递用户图像。为了在 UI 中获得更好的行为,我需要方形裁剪图像,所以我尝试使用嵌套序列化器 ('GetUserImageOneSerializer' 在 'ChatUserSerializer' 内)。 但我只是变得正常 URL 。 你能帮我找到更好的方法来实现我的想法吗:)
输出:
[
{
"roome_name": "BISM1000BISM1000",
"chat_user_one": 6,
"chat_user_two": 5,
"lastUpdated": "2021-12-11T10:29:21.589947Z",
"chatImage": {
"image_one": "/media/userimage/team-1.jpg"
}
}
]
我得到了解决方案
我在图像序列化器中出错 它应该看起来像这样
class GetUserImageOneSerializer(serializers.ModelSerializer):
image_one = VersatileImageFieldSerializer(
sizes=[
('medium_square_crop', 'crop__400x400'),
]
)
class Meta:
model = UserImage
fields = ('image_one',)