我目前正在尝试使用HyperlinkedModelSerializer,但我收到错误:
无法使用视图名称“house-detail”解析超链接关系的URL
那应该是后端:house-detail ,我的REST api中的所有视图都有“backend:”前缀。如何让Django REST自动添加该前缀?
答案 0 :(得分:2)
仍然不确定如何自动执行此操作,因此如果我更改了前缀,我需要手动更改内容。
这是在使用基类和继承时可以帮助
class PrefixedSerializer(serializers.HyperlinkedModelSerializer):
prefix = 'backend'
url = serializers.HyperlinkedIdentityField(
view_name='{}:house-detail'.format(prefix)
)
所以现在HouseSerializer
继承自该基类
class HouseSerializer(PrefixedSerializer):
# the other fields
答案 1 :(得分:0)
要手动完成,请执行以下操作:
class HouseSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(
view_name='backend:house-detail'
)
...
仍然不确定如何自动执行此操作,因此如果我更改了前缀,我需要手动更改内容。