¿Existe alguna forma en Django de exponer solo un cierto rango de URLs basado en alguna variable predefinida?
Básicamente estoy tratando de exponer un rango de URLs definidas en una aplicación.
Por ejemplo, tengo 10 mil x 2 recursos que estoy alojando en /metadata/type11 y /metadata/type21 donde cada agrupación de recursos itera hasta type110000 y tipo210000 respectivamente (20,000 activos almacenados que pretendo servir en un intervalo controlado manualmente).
Como tal, intento definir un esquema de URL de manera tal que
maxavailablemetadata = currentlimit [por ejemplo, esto puede ser 300, 7777, etc.] y solo quiero configurar las URLs dentro del patrón hasta este límite. Por ejemplo, si lo envío a 25, type11, type12…25 y de igual manera type21, type22… tipo225 se mapearían correctamente, pero al intentar ir a metadata/tipo126 a type110000 todos devolverían 404, lo mismo para tipo2.
Probablemente querré configurar esto a través de django admin, pero esto no es parte de la pregunta.
davy.ai
Para exponer una serie de URLs definidas en una aplicación, se puede utilizar el sistema de enrutamiento de URL de Django. En su caso, tiene 20,000 activos almacenados que desea servir en un intervalo manual, los cuales se alojan en /metadata/type1_1 y /metadata/type2_1. Para definir el esquema de URL que limita las URLs en función de max_available_metadata, puede utilizar expresiones regulares para hacer coincidir las URLs y capturar las partes dinámicas de la URL.
Por ejemplo, para limitar las URL hasta 25, puede definir los siguientes patrones de URL en Django URLconf:
Aquí, la parte
<int:pk>
del patrón de URL captura el valor entero después del carácter_
en la URL. Cuando se solicita una URL, Django la busca contra estos patrones de URL de arriba a abajo hasta que encuentra una coincidencia. Si la URL coincide con uno de los patrones de URL y el valor entero capturado es mayor que max_available_metadata, Django devolverá un error 404.Para configurar el límite de max_available_metadata, puede definir una configuración en su archivo de configuración de Django y usarlo en sus patrones de URL. Por ejemplo:
Aquí, la configuración
MAX_AVAILABLE_METADATA
se utiliza para limitar los patrones de URL hasta el valor especificado. Si el valor es inferior a 10,000, entonces se agregan dos patrones de URL adicionales al URLconf que coinciden con cualquier URL que exceda el límite, lo que devolverá un error 404.Tenga en cuenta que este es solo un ejemplo básico y es posible que necesite modificarlo para que se ajuste a sus requisitos específicos. Además, mencionó que desea configurar esto a través del administrador de Django, pero eso no es parte de la pregunta, por lo que no lo incluí en mi respuesta.