24 lines
619 B
Python
24 lines
619 B
Python
|
|
from rest_framework.fields import Field
|
||
|
|
|
||
|
|
from wagtail.api.v2.serializers import BaseSerializer
|
||
|
|
from wagtail.api.v2.utils import get_full_url
|
||
|
|
|
||
|
|
|
||
|
|
class DocumentDownloadUrlField(Field):
|
||
|
|
"""
|
||
|
|
Serializes the "download_url" field for documents.
|
||
|
|
|
||
|
|
Example:
|
||
|
|
"download_url": "http://api.example.com/documents/1/my_document.pdf"
|
||
|
|
"""
|
||
|
|
|
||
|
|
def get_attribute(self, instance):
|
||
|
|
return instance
|
||
|
|
|
||
|
|
def to_representation(self, document):
|
||
|
|
return get_full_url(self.context["request"], document.url)
|
||
|
|
|
||
|
|
|
||
|
|
class DocumentSerializer(BaseSerializer):
|
||
|
|
download_url = DocumentDownloadUrlField(read_only=True)
|