django-vue3-admin-backend/crud_book/serializers.py
2025-10-22 22:43:03 +08:00

55 lines
1.5 KiB
Python

#backend/crud_demo/serializers.py
from crud_book.models import CrudBookModel
from dvadmin.utils.serializers import CustomModelSerializer
from rest_framework import serializers
from django.conf import settings
class CrudBookModelSerializer(CustomModelSerializer):
"""
序列化器
"""
# 添加SerializerMethodField来处理image字段
image = serializers.SerializerMethodField()
location = serializers.SerializerMethodField()
def get_image(self, obj):
"""
获取完整的图片URL
"""
if obj.image:
# 检查image是否已经是完整的URL
if obj.image.startswith(('http://', 'https://')):
return obj.image
# 否则添加MEDIA_URL前缀
return settings.API_URL + obj.image
return None
def get_location(self, obj):
"""
获取完整的图书URL
"""
if obj.location:
# 检查location是否已经是完整的URL
if obj.location.startswith(('http://', 'https://')):
return obj.location
# 否则添加MEDIA_URL前缀
return settings.API_URL + obj.location
return None
#这里是进行了序列化模型及所有的字段
class Meta:
model = CrudBookModel
fields = "__all__"
#这里是创建/更新时的列化器
class CrudBookModelCreateUpdateSerializer(CustomModelSerializer):
"""
创建/更新时的列化器
"""
class Meta:
model = CrudBookModel
fields = '__all__'