【发布时间】:2023-03-15 12:15:01
【问题描述】:
我是 Django 新手,我正在开发一个网站,我需要在其中通过 Django 管理平台自动创建新页面。因此,如果display 参数设置为True,则想法是在站点的主菜单上创建一个新选项卡。
但是我想给用户一个选项来创建一个像这样的下拉菜单, Dropdown menu.
所以我的想法是有一个复选框Dropdown Menu,只要用户将其设置为True,下拉菜单下“嵌套”的所有可用页面的列表将在其下方自动启用。
我现在附上管理页面,Admin fields.。
app 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"]
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)
【问题讨论】:
标签: python django django-models model django-model-field