Generar Javascript de forma dinámica en su servidor puede ser una herramienta tremendamente poderosa y he experimentado tanto ventajas como desventajas en mis proyectos.
En general, desea mantener la mayor cantidad posible de datos estáticos para minimizar el trabajo que se debe realizar en cada solicitud. Esto incluye tener el caché del navegador tanto como sea posible, lo que podría convertirse en un problema en su caso.
Lo que suelo hacer es tener un bloque en el encabezado de mi plantilla base. En las plantillas que necesitan un javascript personalizado que solo se conoce en el tiempo de ejecución (personalización basada en el usuario que ha iniciado sesión, por ejemplo), lo agrego al bloque. Aquí puedo generar dinámicamente javascript que sé que no se almacenará en caché para poder hacer algunas suposiciones. La desventaja es más complejidad.
Si lo que necesita son solo apuntando a direcciones URL, o tiene alguna configuración simple, etc., entonces le sugiero que cree una vista que devuelva un archivo Javascript con esta configuración. Puede establecer los encabezados correctos (Etag, Cache-Control, etc.) para que el navegador guarde en caché el archivo durante un tiempo razonable. Cuando actualice su código, asegúrese de que el Etag cambie.
En el código que debe utilizar la configuración, es necesario comprobar siempre que la variable que busca es en realidad se defina otra cosa que se a tener problemas que son difíciles de depurar cuando por alguna razón la configuración JavaScript es no cargado correctamente
Hoy en día prefiero usar [django-compressor] (https://github.com/jezdez/django_compressor) – sebpiq