Serializers
auto_serializer
- headless_cms.serializers.auto_serializer(model: type[Model], override_model_serializer_fields: dict | None = None) type[ModelSerializer]
Automatically create a serializer for a given model.
This function dynamically generates a Django REST Framework serializer for the specified model. It handles relationships and nested serializers, making it easier to work with complex model structures.
- Parameters:
model (type[models.Model]) – The model class for which to create the serializer.
override_model_serializer_fields (Optional[dict], optional) – A dictionary of fields to override in the generated serializer. Defaults to None.
- Returns:
The generated serializer class.
- Return type:
type[serializers.ModelSerializer]
LocalizedModelSerializer
- class headless_cms.serializers.LocalizedModelSerializer(*args, **kwargs)
A base serializer for models with localized fields.
This serializer automatically maps localized fields to their corresponding serializer fields in the Django REST Framework, making it easier to work with models that have multiple language support.
- Field Mapping:
LocalizedField -> CharField
LocalizedAutoSlugField -> SlugField
LocalizedUniqueSlugField -> SlugField
LocalizedFileField -> FileField
LocalizedIntegerField -> IntegerField
LocalizedFloatField -> FloatField
LocalizedBooleanField -> BooleanField
AutoLanguageUrlField -> UrlField
LocalizedMartorField -> LocalizedMartorFieldSerializer
LocalizedBaseSerializer
- class headless_cms.serializers.LocalizedBaseSerializer(*args, **kwargs)
A base serializer for localized models.
This serializer is designed to exclude certain fields by default, making it easier to work with models that have localized fields. The excluded fields often include those that are not necessary for the serialization process or that require special handling.
- Excluded Fields:
position: Typically used for ordering and not needed in the serialized output.
content_type: Used by Django’s content types framework, often unnecessary in the output.
object_id: The ID of the related object, usually not needed in the serialized form.
This list of excluded fields can be extended by modifying the extra_exclude attribute in the Meta class.
LocalizedDynamicFileSerializer
- class headless_cms.serializers.LocalizedDynamicFileSerializer(*args, **kwargs)
A serializer for models with dynamic file fields, primarily used for LocalizedDynamicFileModel.
This serializer is designed to handle models that have dynamic file fields, such as fields for uploaded files or URLs to external resources. It adds a src field that returns the absolute URL of the file, either from a local source or an external URL.