HyperlinkedModelSerializer类类似于ModelSerializer类,不同之处在于它使用超链接来表示关联关系而不是主键。
默认情况下序列化器将包含一个url字段而不是主键字段。
使用场景:
做二级页面时,需要在每条数据后面添加数据的详细地址,虽然json数据有 id 号,但 id 和 url 不一定总是关联的。最好 json 数据中直接提供超链接到每篇文章的 url,以后前端用起来就方便了。
实现超链接可以用 DRF 框架提供的 HyperlinkedIdentityField
:
默认情况下,超链接期望对应到一个样式能匹配’{model_name}-detail’的视图,并通过pk关键字参数查找实例。
你可以通过在extra_kwargs中设置view_name和lookup_field中的一个或两个来重写URL字段视图名称和查询字段。
# view_name指的是配置的路由解析,lookup_field指的是查找的字段(在模型字段),lookup_url_kwarg指的是路由输入的有名分组(可以改下,默认是pk,就是id)