Есть ли в Django способ раскрывать только определенный диапазон URL на основе некоторой предопределенной переменной?
Я в основном пытаюсь раскрыть диапазон определенных URL в приложении.
Например, у меня есть 10k x2 ресурсов, которые я размещаю в /metadata/type1_1 и /metadata/type2_1, где каждая группировка ресурсов итерирует до type1_10000 и type2_10000 соответственно (20,000 хранимых активов, которые я собираюсь обслуживать в течение интервала, управляемого вручную).
Поэтому я пытаюсь определить схему URL так, чтобы
max_available_metadata = current_limit [например, это может быть 300, 7777 и т.д.] и я хочу настроить URL в шаблоне только до этого предела. например, если я отправлю его на 25, type1_1, type1_2...25 и аналогично type2_1, type2_2... type2_25, все они будут отображаться правильно, но попытка перейти к метаданным/type1_26 через type1_10000 вернет 404, аналогично для type2.
Вероятно, я захочу настроить установку этого через админку django, но это не относится к вопросу.
Вы можете управлять этим в своем представлении.
# urls.py
urlpatterns = [
path(
"metadata/type<int:asset_type>_<int:asset_num>/",
views.serve_asset,
),
# views.py
def serve_asset(request, asset_type, asset_num):
if asset_type == 1:
if asset_num <= MAX_ALLOWED_ASSET_NUM:
# do your stuff for asset 1
elif asset_type == 2:
...
raise Http404("Asset not exist")