DRF HyperlinkedModelSerializer修改lookup_field为IP_Address配置错误求助
错误根源
你配置的lookup_field仅在视图层、路由层生效,HyperlinkedModelSerializer默认生成的url超链接字段仍使用默认的pk作为查询参数,无法匹配你自定义的IP_Address路由参数,因此生成超链接时抛出错误。
解决方案
修改Serializers.py,显式定义url字段并指定对应的lookup_field即可,修改后的代码如下:
class NodeSerializer(serializers.HyperlinkedModelSerializer): # 显式定义超链接字段,指定自定义查询字段 url = serializers.HyperlinkedIdentityField( view_name='nodemaster-detail', lookup_field='IP_Address' ) class Meta: model = NodeMaster fields = '__all__'
补充注意事项
- 你现有视图、路由的配置无需修改,已经符合要求。
- 如果后续其他序列化器中使用
HyperlinkedRelatedField关联NodeMaster模型,也需要给该关联字段加上lookup_field='IP_Address'参数,否则仍会触发同类错误。
内容的提问来源于stack exchange,提问作者Dhinesh TP
相关产品推荐
相关产品推荐

