Q:

Resultado de un ListApiView de Rest Framework pasando parametro por url

Estoy teniendo problemas para mostrar los resultados de una consulta, el error que me muestra es que no encuentra la pagina (404)
Estoy empezando con Django Rest Framework y quizás sea muy evidente pero no acabo de verlo.
Se trata de que me devuelva serializado el resultado de una consulta donde le paso los parámetros por la URL. (Acepto otras alternativas, por si lo estoy enfocando mal)
Empezando con algo sencillo, como es indicarle un código de agente en la URL y que me devuelva las ventas de ese agente.
Archivo urls.py:
url(r'^ventas-agente-fechas/(?P<agenteId>)/$', views.VentasAgenteFechas.as_view()),

Archivo views.py:
class VentasAgenteFechas(generics.ListAPIView):
    serializer_class = VentaAgenteFechaSerializer
    def get_queryset(self):
        agente = self.request.QUERY_PARAMS.get('agenteId', None)
        queryset = Venta.objects.all()
        if agente is not None:
            queryset = queryset.filter(Agente=agente)
        return queryset

Archivo serializers.py:
class VentaAgenteFechaSerializer(serializers.ModelSerializer):
    class Meta:
        model = Venta
        fields = ('id', 'Agente', 'CdgContrato', 'Cliente', 'FechaVenta', 'Importe', 'PorcentajeComision', 'FormaPago')

Si accedo a http://127.0.0.1:8000/comisiones/ventas-agente-fechas/?agenteId=1 me dice que no existe la pagina.

A:

Cuando tu le agregas esto a una url (?P<agenteId>) eso quiere decir que necesitas que la url necesita ese dato para pasarlo como parámetro a una vista, por lo que tu url necesitaría ser algo así: /comisiones/venta-agente-fechas/1/, porque de la forma como tienes escrita la expresión regular, necesitas sí o sí pasarle el parámetro, o no reconoce la url y arroja un 404.
Al ver que es opcional el parámetro, te planteo la solución de esta forma:
urls.py
url(r'^ventas-agente-fechas/$', views.VentasAgenteFechas.as_view()),

Listo, con dejar la url así, debería funcionar.
Cualquier duda, comenta

