Trying to do as described here , but nothing works. Here is what I have:

model.py

class Client(Timestamps): full_name = models.CharField(verbose_name=_('Full name')) class Meta: verbose_name = _('Client') verbose_name_plural = _('Clients') def __unicode__(self): return "%s" % (self.initials) class ClientDocument(Timestamps): description = models.CharField(verbose_name=_('Description')) issue_date = models.DateField(verbose_name=_('Date of issue')) client = models.ForeignKey('Client', verbose_name=_('Client')) class Meta: verbose_name = _("Identity document") verbose_name_plural = _("Identity documents") def __unicode__(self): return "%s" % (self.description) 

vievs.py

 class ClientDocumentViewSet(viewsets.ViewSet): def retrieve(self, request, client=None, pk=None): queryset = ClientDocument.objects.filter(client__company=request.user.company) document = get_object_or_404(queryset, pk=pk) serializer = DocumentRetrieveSerializer(instance=document, context={'request': request}) return Response({'data': serializer.data}, status=status.HTTP_200_OK) 

serializers.py

 classMultiplePKHyperlinkedIdentityField(serializers.HyperlinkedRelatedField): view_name = 'clientdocument-detail' queryset = ClientDocument.objects.all() def get_url(self, obj, view_name, request, format): url_kwargs = { 'client': obj.client.pk, 'pk': obj.pk } return reverse(view_name, kwargs=url_kwargs, request=request, format=format) def get_object(self, view_name, view_args, view_kwargs): lookup_kwargs = { 'client_id': view_kwargs['client'], 'pk': view_kwargs['pk'] } return self.get_queryset().get(**lookup_fields) class DocumentRetrieveSerializer(serializers.HyperlinkedModelSerializer): url = MultiplePKHyperlinkedIdentityField() class Meta: model = ClientDocument fields = ('id', 'description', 'issue_date', 'url') 

urls.py

 api_v1_patterns = [ url(r'^clients/(?P<client>[0-9]+)/documents/(?P<pk>[0-9]+)/', ClientDocumentViewSet.as_view({'get': 'retrieve'}), name='clientdocument-detail'), ] 

It gives the following error:

AttributeError at / api / v1 / clients / 3 / documents / 3 /

'ClientDocument' object has no attribute 'url'

 Traceback: File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 149. response = self.process_exception_by_middleware(e, request) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 147. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 58. return view_func(*args, **kwargs) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/viewsets.py" in view 87. return self.dispatch(request, *args, **kwargs) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch 466. response = self.handle_exception(exc) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch 463. response = handler(request, *args, **kwargs) File "/media/veracrypt1/psm_venv/psm/api/views.py" in retrieve 204. return Response({'data': serializer.data}, status=status.HTTP_200_OK) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/serializers.py" in data 503. ret = super(Serializer, self).data File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/serializers.py" in data 239. self._data = self.to_representation(self.instance) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/serializers.py" in to_representation 463. attribute = field.get_attribute(instance) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/relations.py" in get_attribute 146. return get_attribute(instance, self.source_attrs) File "/media/veracrypt1/psm_venv/local/lib/python2.7/site-packages/rest_framework/fields.py" in get_attribute 80. instance = getattr(instance, attr) Exception Type: AttributeError at /api/v1/clients/3/documents/3/ Exception Value: 'ClientDocument' object has no attribute 'url' 

Thanks in advance to everyone !!!

    0