Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

related_link_url_kwarg doesnt work with non pk value #358

Closed
@ghost

Description

Seems like related_link_lookup_field is not respected in SerializerMethodResourceRelatedField:

class BookSerializer(serializers.HyperlinkedModelSerializer):

    authors = relations.SerializerMethodResourceRelatedField(
        source='get_authors',
        model=Author,
        many=True,
        read_only=True,
        related_link_view_name='books-authors-list',
        related_link_url_kwarg='ext_book_id',
        related_link_lookup_field='ext_book_id',
    )

  File "/src/django-rest-framework-json-api/rest_framework_json_api/renderers.py", line 140, in extract_relationships
    field_links = field.get_links(resource_instance)
  File "/src/django-rest-framework-json-api/rest_framework_json_api/relations.py", line 125, in get_links
    related_kwargs = {self.related_link_url_kwarg: kwargs[self.related_link_lookup_field]}
KeyError: 'ext_book_id'

Looks like https://github.com/django-json-api/django-rest-framework-json-api/blob/develop/rest_framework_json_api/renderers.py#L140 get_links is missing lookup_field

kwargs: {'ext_book_id': 256} http://localhost:8000/api/books/256/authors/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions