Я новичок в Django. Я занимаюсь разработкой веб-сайта, на котором мне нужно автоматизировать создание новых страниц с помощью Django платформы администратора. Поэтому идея заключается в создании новой вкладки в главном меню сайта, если для параметра display
установлено значение True
. Однако я хочу дать пользователю возможность создать выпадающее меню, подобное этому, Выпадающее меню . Таким образом, моя идея состоит в том, чтобы установить флажок Dropdown Menu
, чтобы каждый раз, когда пользователь устанавливал его True
, под ним автоматически включался список всех доступных страниц для «вложения» в раскрывающемся меню. Я прикрепляю страницу администратора, как она есть сегодня, Поля администратора. .
models.py приложения creat_pages
class CreatePage(models.Model):
name = models.CharField("Nome", max_length=100)
slug = models.SlugField("Atalho")
tittle = models.CharField("Título", max_length=100)
description = models.TextField("Descrição", blank=True)
body = models.TextField("Corpo", blank=True)
display = models.BooleanField("Mostrar no Site", default=False)
dropdown_menu = models.BooleanField("Dropdown Menu", default=False)
dropdown_options = models.ForeignKey("self", null=True, related_name='dropdown',
on_delete=models.CASCADE)
created_at = models.DateTimeField("Criado em", auto_now_add=True)
updated_at = models.DateTimeField("Última alteração", auto_now=True)
objects = models.Manager()
def __str__(self):
return self.name
def get_absolute_url(self):
from django.urls import reverse
return reverse("create_pages:detail", kwargs={"slug": self.slug})
class Meta:
verbose_name = "Criar Página"
verbose_name_plural = "Criar Paginas"
ordering = ["-name"]
Admin.py:
class CreatePageAdmin(admin.ModelAdmin):
list_display = ["name", "slug", "tittle", "display", "created_at"]
search_fields = ["name", "slug", "tittle"]
prepopulated_fields = {"slug": ("name",)}
admin.site.register(CreatePage, CreatePageAdmin)
Можете ли вы помочь мне решить эту проблему, пожалуйста?
Большое спасибо!