myapp.serializers module

class myapp.serializers.HyperlinkedModelSerializer(*args, **kwargs)[source]

Bases: rest_framework_json_api.serializers.HyperlinkedModelSerializer

Common serializer class for all model serializers. Extends models.CommonModel to set last_mod_user_name and …date from auth.user on a POST/PATCH, not from the client app. This silently ignores anything CREATEd or PATCHed for these fields.

class Meta[source]

Bases: object

In order for this Meta inner class to be inherited by the various serializers, one must explicitly inherit it as in this example:

class MySerializer(HyperlinkedModelSerializer):
    class Meta(HyperlinkedModelSerializer.Meta):
        model = MyModel
fields = '__all__'

serialize all model fields unless otherwise overridden

read_only_fields = ('last_mod_user_name', 'last_mod_date')

mark these fields as read-only

create(validated_data)[source]

extend ModelSerializer.create() to set last_mod_user/date

update(instance, validated_data)[source]

extend ModelSerializer.update() to set last_mod_user/date

class myapp.serializers.CourseSerializer(*args, **kwargs)[source]

Bases: myapp.serializers.HyperlinkedModelSerializer

(de-)serialize the Course model.

course_terms = None

a course has zero or more course_term instances

included_serializers = {'course_terms': 'myapp.serializers.CourseTermSerializer'}

{json:api} compound document (also used for related_serializers for DJA 2.6.0)

class myapp.serializers.CourseTermSerializer(*args, **kwargs)[source]

Bases: myapp.serializers.HyperlinkedModelSerializer

(de-)serialize the CourseTerm model.

course = None

a course_term has zero or one parent courses

instructors = None

a course_term can have many instructors

included_serializers = {'course': 'myapp.serializers.CourseSerializer', 'instructors': 'myapp.serializers.InstructorSerializer'}

?include=course or ?include=instructors {json:api} compound document

class myapp.serializers.PersonSerializer(*args, **kwargs)[source]

Bases: myapp.serializers.HyperlinkedModelSerializer

(de-)serialize the Person model.

instructor = None

a person is an instructor

included_serializers = {'instructor': 'myapp.serializers.InstructorSerializer'}

{json:api} compound document

class myapp.serializers.InstructorSerializer(*args, **kwargs)[source]

Bases: myapp.serializers.HyperlinkedModelSerializer

(de-)serialize the Instructor model.

course_terms = None

an instructor teaches zero or more course instances

person = None

an instructor is a person

included_serializers = {'course_terms': 'myapp.serializers.CourseTermSerializer', 'person': 'myapp.serializers.PersonSerializer'}

{json:api} compound document