我是 Django 新手,我正在开发一个网站,我需要在其中通过 Django 管理平台自动创建新页面。display
因此,如果参数设置为 ,则想法是在站点的主菜单上创建一个新选项卡True
。
但是我想给用户一个选项来创建一个像这样的下拉菜单, Dropdown menu。
所以我的想法是有一个复选框Dropdown Menu
,每当用户设置它时True
,下拉菜单下“嵌套”的所有可用页面的列表将在其下方自动启用。
我正在附加管理页面,就像今天一样,管理字段。.
应用程序 creat_pages 的 models.py
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"]
管理员.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)