django-json-api/django-rest-framework-json-api

AttributeError: can not detect 'resource_name' on serializer 'str' in module 'builtins'

Anton-Shutik opened this issue · 1 comments

Description of the Bug Report

django==2.2.18
djangorestframework==3.12.0
djangorestframework-jsonapi>=4.3.0

This code stopped working after upgrade to 4.3.0:

class MegaMenuItemSerializer(HyperlinkedModelSerializer):
    
    category = json_api_relations.ResourceRelatedField(
        related_link_view_name="megamenuitem-category",
        related_link_url_kwarg="megamenuitem_pk",
        self_link_view_name="megamenuitem-relationships",
        read_only=True,
    )

    included_serializers = {
        "category": "path.to.CategorySerializer",
    }

Can be fixed with this:

from another_package.serializers import CategorySerializer
included_serializers = {
        "category": CategorySerializer,
    }

Does it support string based path to serializer now ? If not, how do we resolve self references ?

Fixed by

from rest_framework_json_api.serializers import HyperlinkedModelSerializer

instead of

from rest_framework.serializers import HyperlinkedModelSerializer