Python Django REST序列化程序,如何添加额外字段并进行设置
我需要你的帮助,扩展类超出了我目前的Python技能 Django3.1和DjangoREST框架 我想将“detail_url”字段添加到VideoSerializer中,并根据模型上的现有字段设置其值。“detail_url”未在模型中定义,我希望在调用view时动态生成它。我想,序列化程序是最好的地方 多谢各位 序列化程序.pyPython Django REST序列化程序,如何添加额外字段并进行设置,python,django,serialization,django-rest-framework,Python,Django,Serialization,Django Rest Framework,我需要你的帮助,扩展类超出了我目前的Python技能 Django3.1和DjangoREST框架 我想将“detail_url”字段添加到VideoSerializer中,并根据模型上的现有字段设置其值。“detail_url”未在模型中定义,我希望在调用view时动态生成它。我想,序列化程序是最好的地方 多谢各位 序列化程序.py from rest_framework import serializers from django.urls import reverse from main.
from rest_framework import serializers
from django.urls import reverse
from main.models import Video
class VideoSerializer(serializers.ModelSerializer):
detail_url = serializers.URLField()
class Meta:
model = Video
fields = ['uuid', 'url', 'title', 'thumbnail_url', 'detail_url']
# fields = '__all__'
detail_url = reverse('video_detail', args=[model.uuid]) # <- this is the part I dont know where to declare
如果要添加作为方法结果的字段,则应使用
class VideoSerializer(serializers.ModelSerializer):
...
detail_url = serializers.SerializerMethodField()
def get_detail_url(self, obj):
return reverse('video_detail', obj.uuid)
serializers.SerializerMethodField()
class VideoSerializer(serializers.ModelSerializer):
...
detail_url = serializers.SerializerMethodField()
def get_detail_url(self, obj):
return reverse('video_detail', obj.uuid)