fix: Don't assume there is a context.

Don't assume that there will be an extra `context` kwarg when using the
bookmark serializer.  We use it this way in the current code but that's
specific to us and not comon to all serializers.  There are a lot of API
documentation tools that automate introspecting serializers but they
won't know  that they have to send in a `context` to the serializer.

To make this serializer behave more like other serializers without
changing the behavior, we just need to check that the `context` value is
defined before we dig into it.  In the case that there is no `context`
we just treat it the same as if there is no `request` in the `context`.
This commit is contained in:
Feanil Patel
2023-06-29 13:01:18 -04:00
parent 79a4339278
commit cf9c4e83bf

View File

@@ -51,7 +51,7 @@ class BookmarkSerializer(serializers.ModelSerializer):
# Drop any fields that are not specified in the `fields` argument.
required_fields = set(fields)
if 'request' in kwargs['context'] and is_schema_request(kwargs['context']['request']):
if 'context' in kwargs and 'request' in kwargs['context'] and is_schema_request(kwargs['context']['request']):
# We are serving the schema: include everything
required_fields.update(OPTIONAL_FIELDS)