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)
|