我是Django REST Framework的新手,并且因为看起来很简单的事情而沮丧了一段时间。我有一个串行器,我试图切换到HyperLinkedModelSerializer。我通过DRF快速入门指南去了,我想我的串行和视图集中是非常相似的例子还有:DRF:在串行器中添加'url'字段导致在浏览API时出现'无法解析URL'错误
class PickViewset(viewsets.ModelViewSet):
queryset = Pick.objects.all()
serializer_class = PickSerializer
class PickSerializer(serializers.HyperlinkedModelSerializer):
sheet = SheetSerializer()
game = GameSerializer()
class Meta:
model = Pick
fields = ('url', 'sheet', 'amount', 'spread', 'pick_type', 'pick_team', 'game')
与路由器除了:
router.register(r'pick', PickViewset, base_name='picks')
当url
场被冷落,挑选端点出现在可浏览的API上,我可以查看这些对象。但是,只要我添加url
,我得到这个错误:
ImproperlyConfigured at /api/pick/
Could not resolve URL for hyperlinked relationship using view name "pick-detail".
You may have failed to include the related model in your API, or incorrectly configured the `lookup_field` attribute on this field.
我的理解是,使用视图集将自动处理的详细视图,而且我认为该模型是正确包括在内。这留下了lookup_field,但我不确定这里有什么问题。我希望问题检索任何结果。
我尝试将lookupfield = 'id'
添加到PickViewset,但没有帮助。我也试着用GameSerializer做同样的事情 - 创建一个Viewset并添加到路由器中,但是我遇到了同样的错误。