cms.core.api.rest package

Submodules

cms.core.api.rest.fields module

class cms.core.api.rest.fields.GeopositionField(*args, **kwargs)

Bases: rest_framework.fields.Field

to_representation(value)

Transform coordinates object to json.

class cms.core.api.rest.fields.LinkField(**kwargs)

Bases: rest_framework.fields.CharField

to_representation(value)

cms.core.api.rest.pagination module

class cms.core.api.rest.pagination.LimitOffsetPagination

Bases: rest_framework.pagination.LimitOffsetPagination

default_limit = 20
get_paginated_response(data)
max_limit = 50

cms.core.api.rest.routers module

class cms.core.api.rest.routers.ApiRestPrivateRouter(trailing_slash=True)

Bases: rest_framework.routers.DefaultRouter

include_root_view = False
class cms.core.api.rest.routers.ApiRestPublicRouter(trailing_slash=True)

Bases: rest_framework.routers.DefaultRouter

root_view_name = 'core.api.rest.public'

cms.core.api.rest.serializers module

class cms.core.api.rest.serializers.ApiRestContentModelSerializer(instance=None, data=<class rest_framework.fields.empty at 0x5b48390>, **kwargs)

Bases: cms.core.api.rest.serializers.ApiRestModelSerializer

class cms.core.api.rest.serializers.ApiRestModelSerializer(instance=None, data=<class rest_framework.fields.empty at 0x5b48390>, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

class Meta
fields = ()
ApiRestModelSerializer.get_fields()

Modified: Generate FOO_display field for every ChoiceField. Sort dict by key.

ApiRestModelSerializer.serializer_field_mapping = {<class 'django.db.models.fields.FloatField'>: <class 'rest_framework.fields.FloatField'>, <class 'django.db.models.fields.FilePathField'>: <class 'rest_framework.fields.FilePathField'>, <class 'django.db.models.fields.IntegerField'>: <class 'rest_framework.fields.IntegerField'>, <class 'django.db.models.fields.files.FileField'>: <class 'rest_framework.fields.FileField'>, <class 'django.db.models.fields.AutoField'>: <class 'rest_framework.fields.IntegerField'>, <class 'django.db.models.fields.files.ImageField'>: <class 'rest_framework.fields.ImageField'>, <class 'cms.core.fields.GeopositionField'>: <class 'cms.core.api.rest.fields.GeopositionField'>, <class 'django.db.models.fields.SmallIntegerField'>: <class 'rest_framework.fields.IntegerField'>, <class 'django.db.models.fields.SlugField'>: <class 'rest_framework.fields.SlugField'>, <class 'django.db.models.fields.DateTimeField'>: <class 'rest_framework.fields.DateTimeField'>, <class 'django.db.models.fields.TextField'>: <class 'rest_framework.fields.CharField'>, <class 'django.db.models.fields.CharField'>: <class 'rest_framework.fields.CharField'>, <class 'django.db.models.fields.CommaSeparatedIntegerField'>: <class 'rest_framework.fields.CharField'>, <class 'django.db.models.fields.NullBooleanField'>: <class 'rest_framework.fields.NullBooleanField'>, <class 'cms.core.fields.FileField'>: <class 'rest_framework.fields.ImageField'>, <class 'django.db.models.fields.GenericIPAddressField'>: <class 'rest_framework.fields.IPAddressField'>, <class 'django.db.models.fields.BigIntegerField'>: <class 'rest_framework.fields.IntegerField'>, <class 'django.db.models.fields.PositiveIntegerField'>: <class 'rest_framework.fields.IntegerField'>, <class 'django.db.models.fields.Field'>: <class 'rest_framework.fields.ModelField'>, <class 'django.db.models.fields.EmailField'>: <class 'rest_framework.fields.EmailField'>, <class 'django.db.models.fields.PositiveSmallIntegerField'>: <class 'rest_framework.fields.IntegerField'>, <class 'django.db.models.fields.DecimalField'>: <class 'rest_framework.fields.DecimalField'>, <class 'django.db.models.fields.BooleanField'>: <class 'rest_framework.fields.BooleanField'>, <class 'django.db.models.fields.TimeField'>: <class 'rest_framework.fields.TimeField'>, <class 'django.db.models.fields.DateField'>: <class 'rest_framework.fields.DateField'>, <class 'django.db.models.fields.IPAddressField'>: <class 'rest_framework.fields.IPAddressField'>, <class 'django.db.models.fields.URLField'>: <class 'rest_framework.fields.URLField'>}

cms.core.api.rest.sites module

exception cms.core.api.rest.sites.AlreadyRegistered

Bases: exceptions.Exception

class cms.core.api.rest.sites.ApiRestSite

Bases: object

build_serializer_class(model, public)

We pass queryset_select_related and queryset_prefetch_related from model’s API-class with the serializer, so we do not need to iterate through all base classe again with our view.

build_view_class(model, serializer_class, opts, public)
get_base_name_for_model(model, mode)
get_options_for_model(model)
get_url_for_model(model, mode)
get_url_for_object(obj, mode)
register(model)
unregister(model)

Unregisters the given model(s).

If a model isn’t already registered, this will raise NotRegistered.

exception cms.core.api.rest.sites.NotRegistered

Bases: exceptions.Exception

cms.core.api.rest.sites.autodiscover()

cms.core.api.rest.viewsets module

class cms.core.api.rest.viewsets.ApiRestPublicReadOnlyModelViewSet(**kwargs)

Bases: cms.core.api.rest.viewsets.ApiRestReadOnlyModelViewSet

dispatch(*args, **kwargs)
get_queryset()
permission_classes = [<class 'rest_framework.permissions.AllowAny'>]
class cms.core.api.rest.viewsets.ApiRestReadOnlyModelViewSet(**kwargs)

Bases: rest_framework.viewsets.ReadOnlyModelViewSet

apply_select_prefetch(queryset)
get_queryset()

Get the list of items for this view. This must be an iterable, and may be a queryset. Defaults to using self.queryset.

This method should always be used rather than accessing self.queryset directly, as self.queryset gets evaluated only once, and those results are cached for all subsequent requests.

You may want to override this if you need to provide different querysets depending on the incoming request.

(Eg. return a list of items that is specific to the user)

Modified: Check for manager-class since we ship no querysets with auto-generated views. Also added select_related and prefetch_related.

queryset = None
serializer_class = None

Module contents