Django REST framework – HyperlinkedRelatedField con parámetro adicional

Estoy construyendo la API web REST con el marco de Django Rest. Tengo una relación de muchos a muchos entre categorías y carteras. Partiendo de una categoría, recupero todas las carteras a las que está vinculado y, desde el shell, todo funciona bien.

Modelos:

class Wallet(models.Model): nome = models.CharField(max_length=255) creato = models.DateTimeField(auto_now=False) utente = models.ForeignKey(User) wallettype = models.ForeignKey(Wallettype) payway = models.ManyToManyField(Payway, through = 'Wpw', blank = True) defaultpayway = models.ForeignKey('Wpw', related_name = 'def_pw', null = True) def __unicode__(self): return self.nome class Category(models.Model): nome = models.CharField(max_length=255) creato = models.DateTimeField(auto_now=False) enus = models.ForeignKey(Enus) wallet = models.ManyToManyField(Wallet) utente = models.ForeignKey(User) owner = models.ManyToManyField(User, related_name='owner_cat') 

Urls:

 urlpatterns = patterns( '', url(r'^$', views.cat_list.as_view()), url(r'^/(?P[0-9]+)/*$', views.cat_detail.as_view()), url(r'^/(?P[0-9]+)/wallets/*$', views.cwallet_list.as_view()), url(r'^/(?P[0-9]+)/wallets/(?P[0-9]+)/*$', views.cwallet_detail.as_view(), name='cwallet-detail'), ) 

Serializador:

 class cat_serializer(serializers.ModelSerializer): wallet = serializers.HyperlinkedRelatedField( many=True, read_only=True, view_name='cwallet-detail', # lookup_field = 'pk', # lookup_url_kwarg = 'pk' ) subcat_count = serializers.IntegerField( source='subcategory_set.count', read_only=True ) class Meta: model = Category fields = ('id', 'nome','wallet','subcat_count') 

Cuando llamo:

 GET http://localhost:8000/categories/77/wallets 

Me gustaría recuperar:

 { 'nome': 'Dinner', 'subcat_count': 12, 'wallet': { 'http://localhost:8000/77/wallet/1', 'http://localhost:8000/77/wallet/2', 'http://localhost:8000/77/wallet/3', } } 

Pero no funciona y me sale este error:
“No se pudo resolver la URL para la relación de hipervínculo utilizando el nombre de vista” cwallet-detail “. Es posible que no haya incluido el modelo relacionado en su API, o que haya configurado incorrectamente el atributo lookup_field en este campo”.

Creo que el problema está vinculado al parámetro adicional: de hecho, en mi urls.py tengo pk para el ID de billetera y cat_id para el ID de categoría. No puedo imaginar cómo pasar la identificación de categoría al ‘detalle de la cartera’.

¿Alguien sabe cómo pasar un segundo parámetro a HyperlinkedRelatedField?
Gracias de antemano.

Después de leer documentos y publicar un nuevo número en el github DTJgo REST de Tom Christie , ahora sé que no tiene soporte oficial, pero los documentos y parches están en proceso.

En realidad, existe este enlace para crear un archivo con hipervínculos personalizados para resolver el problema.

Espero que esto ayude a alguien que tenga el mismo problema.