Django REST Framework¶
An optional serializer field is available for DRF projects. Install the extra:
$ pip install "djiiif[drf]"
Then serialize an IIIFField to its profile URLs (the as_dict() mapping):
serializers.py¶
from rest_framework import serializers
from djiiif.serializers import IIIFSerializerField
class PhotoSerializer(serializers.ModelSerializer):
image = IIIFSerializerField() # or IIIFSerializerField(include_meta=True)
class Meta:
model = Photo
fields = ["id", "image"]
The field is read-only and emits the profile mapping:
{
"id": 1,
"image": {
"thumbnail": "https://images.example.org/uploads%2Fsunset.jpg/full/150,/0/default.jpg",
"preview": "https://images.example.org/uploads%2Fsunset.jpg/full/600,/0/default.jpg"
}
}
Pass include_meta=True to also include the info and identifier URLs.
Note
Importing djiiif itself never imports DRF — the core package stays
dependency-free. The serializer lives in djiiif.serializers, which you import
only when you use it.