修改序列化程序生成的 url 路径.超链接身份字段



有没有简单的方法来修改serializers.HyperlinkedIdentityField生成的超链接?具体来说,我想将/download附加到 url 路径。

> class AbcSerializer(serializers.HyperlinkedModelSerializer):
>     url = serializers.HyperlinkedIdentityField(view_name="api:v1:abc-detail")
>     url_download = serializers.HyperlinkedIdentityField(view_name="api:v1:abc-detail") #append /download to this url
> 
> class Meta:
>     model = abc
>     fields = ('url', 'url_download')

将视图更改为包含 url 下载的视图

子类超链接身份字段和覆盖get_url以包含/下载

class HyperlinkedDownloadIdentityField(HyperlinkedIdentityField):
      def get_url(self, *args):
             url = super().get_url(*args)
             return url+"/download"

和序列化程序

...
url_download = HyperlinkedDownloadIdentityField(view_name="api:v1:abc-detail") 

最新更新