Есть ли в 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")
Вернуться на верх