В Django вы можете легко настроить административный интерфейс для вашего веб-приложения, используя Django Admin. Если вы хотите сформировать динамический перечень подкаталогов в зависимости от выбранного каталога, вам потребуется настроить правильные модели и связи в вашем приложении.
Предположим, у вас есть модель Catalog (каталог) и Subcatalog (подкаталог), и они связаны между собой отношением "один ко многим", где один каталог может иметь несколько подкаталогов. Вот пример такой модели:
from django.db import models class Catalog(models.Model): name = models.CharField(max_length=100) class Subcatalog(models.Model): name = models.CharField(max_length=100) catalog = models.ForeignKey(Catalog, on_delete=models.CASCADE)
Чтобы административный интерфейс позволял выбирать каталог и отображал только соответствующие подкаталоги, вам потребуется настроить связанные поля и отображение формы администратора.
from django.contrib import admin from .models import Catalog, Subcatalog class SubcatalogInline(admin.StackedInline): model = Subcatalog extra = 0 class CatalogAdmin(admin.ModelAdmin): inlines = [SubcatalogInline] admin.site.register(Catalog, CatalogAdmin)
В этом примере мы создаем класс SubcatalogInline
, который указывает, что в административном интерфейсе для модели Catalog будет отображаться встроенная форма для связанных подкаталогов. Мы добавляем это в поле inlines
в классе CatalogAdmin
, который затем регистрируется с помощью admin.site.register
для модели Catalog.
После этого в административном интерфейсе Django вы увидите форму для добавления и редактирования каталога, которая будет содержать встроенную форму для указания подкаталогов. Вы сможете выбирать каталог и добавлять или изменять соответствующие подкаталоги.
Когда вы выбираете конкретный каталог, Django автоматически отображает только соответствующие подкаталоги. Это достигается с использованием JavaScript, который обрабатывает изменения в выбранном каталоге и обновляет список подкаталогов без перезагрузки страницы.
Обратите внимание, что вы можете настроить различные другие аспекты моделей, отображения и формирования данных в административном интерфейсе Django, в зависимости от ваших конкретных требований.