Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django rest框架端点链接列表_Python_Django_Django Rest Framework - Fatal编程技术网

Python django rest框架端点链接列表

Python django rest框架端点链接列表,python,django,django-rest-framework,Python,Django,Django Rest Framework,使用django rest框架,我需要创建一个端点,列出指向其他端点的链接 router = DefaultRouter() router.register(r'pepperonis', views.PepperoniViewSet, 'Pepperoni') router.register(r'supremes', views.SupremeViewSet, 'Supreme') router.register(r'some-unrelated-endpoint', views.Unrelat

使用django rest框架,我需要创建一个端点,列出指向其他端点的链接

router = DefaultRouter()
router.register(r'pepperonis', views.PepperoniViewSet, 'Pepperoni')
router.register(r'supremes', views.SupremeViewSet, 'Supreme')
router.register(r'some-unrelated-endpoint', views.UnrelatedViewSet, 'Unrelated')
我感兴趣的这些视图集都继承自同一个类:

class Pizza(viewsets.ModelViewSet):
    pass

class PepperoniViewSet(Pizza):
    pass

class SupremeViewSet(Pizza):
    pass
我可以从Pizza获取所有相关的视图集。如何创建只列出指向这些端点的超链接的API端点

我需要端点返回如下内容:

[{"url": "http://example.com/api/pepperonis/"}, {"url": "http://example.com/api/supremes/"}

您希望此端点位于API的基础上吗?如果是这样,(我可能错了),但我相信默认路由器会自动在API的根上创建一个端点,链接到所有其他端点

您可以在序列化程序中使用
HyperlinkedRelatedField
来执行此操作

例如:

class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.HyperlinkedRelatedField(
    many=True,
    read_only=True,
    view_name='track-detail'
)

class Meta:
    model = Album
    fields = ('album_name', 'artist', 'tracks')
结果如下:

{
'album_name': 'Graceland',
'artist': 'Paul Simon',
'tracks': [
    'http://www.example.com/api/tracks/45/',
    'http://www.example.com/api/tracks/46/',
    'http://www.example.com/api/tracks/47/',
    ...
]
}
参考资料:


端点需要明确。我可以灵活地放置端点,但我还需要包括诸如模型详细名称之类的内容。您阅读了吗: