The following HTTP links are missing:
* data self links.
* Pagination links: first, last, next, pref.
* Relationship links: self, related.
I suspect this may be due to introspecting the ModelViewSets instead of the Serializers. In this case,
the HyperlinkedModelSerializer is used rather than the ModelSerializer.
/Users/ac45/src/django-jsonapi-training/myapp/views.py:213: Warning [CourseTermViewSet]: could not derive type of path parameter "related_field" because model "myapp.models.CourseTerm" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".
/Users/ac45/src/django-jsonapi-training/myapp/views.py:189: Warning [CourseViewSet]: could not derive type of path parameter "related_field" because model "myapp.models.Course" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".
/Users/ac45/src/django-jsonapi-training/myapp/views.py:301: Warning [InstructorViewSet]: could not derive type of path parameter "related_field" because model "myapp.models.Instructor" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".
/Users/ac45/src/django-jsonapi-training/myapp/views.py:229: Warning [PersonViewSet]: could not derive type of path parameter "related_field" because model "myapp.models.Person" contained no such field. Consider annotating parameter with @extend_schema. Defaulting to "string".
Also complains about non-unique operation IDs due to related_field:
1234
Warning: operationId "course_terms_retrieve" has collisions [('/v1/course_terms/{id}/', 'get'), ('/v1/course_terms/{id}/{related_field}/', 'get')]. resolving with numeral suffixes.
Warning: operationId "courses_retrieve" has collisions [('/v1/courses/{id}/', 'get'), ('/v1/courses/{id}/{related_field}/', 'get')]. resolving with numeral suffixes.
Warning: operationId "instructors_retrieve" has collisions [('/v1/instructors/{id}/', 'get'), ('/v1/instructors/{id}/{related_field}/', 'get')]. resolving with numeral suffixes.
Warning: operationId "people_retrieve" has collisions [('/v1/people/{id}/', 'get'), ('/v1/people/{id}/{related_field}/', 'get')]. resolving with numeral suffixes.
For example, the course sparse fieldsets fields parameter enumerates
all the possible fields that can be specified. One can select one or more of them from the swagger UI "try it":
Similarly, include enumerates the possible values to include.
Filters are also complete and differ from the DJA implementation only in that the conventional
Django double-underscore is used, e.g. filter[course_terms__term_identifier__lt] vs. the DJA
choice to accept the double-underscore but also allow and document single dot, e.g. filter[course_terms.term_identifier.lt].