bounty还有4小时到期。回答此问题可获得+50声望奖励。Mukoro Godwin希望引起更多关注此问题。
日安所有我想创建一个动态菜单与子菜单填充菜单从数据库。我创建了两个与子菜单相关的主菜单表.
主菜单被填充并且没有正确地播放,但是子菜单被填充但是没有正确地下拉,子菜单保持在彼此的顶部。
但是,如果我手动编写主菜单和子菜单,它们都能正常工作。我做错了什么?谢谢你抽出时间
我想要的x1c 0d1x我得到的
我的代码- Django模板
<div class="collapse navbar-collapse sub-menu-bar" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
{% for item in mainmenu %}
<li class="nav-item">
<a href="{{ item.menulink }}">{{ item.name }}</a>
{% for submenu in item.submenu.all %}
<ul class="sub-menu">
<li>
<a href="{{ submenu.menulink }}">{{ submenu.name }}</a>
</li>
</ul>
{% endfor%}
</li>
{% endfor %}
</ul>
</div>
字符串
我的自定义上下文处理器
from setup.models import Setup, Mainmenu, Submenu
def setup(request):
setup = Setup.objects.first()
return {'organisation': setup}
def mainmenu(request):
mainmenu = Mainmenu.objects.order_by("order").filter(menutype="main")
return {'mainmenu': mainmenu}
def submenu(request):
submenu = Submenu.objects.order_by("order").filter(menutype="submenu")
return {'submenu': submenu}`
- My Database Table
class Mainmenu(models.Model):
name = models.CharField(_("Menu Name"), max_length=256, blank=True, null=True, unique=False)
menulink = models.CharField(_("Menu Link"), max_length=512, blank=True, null=True, help_text="Enter menu link like this, <code>https://uidc.com.ng/page/display/about-us/</code>")
order = models.CharField(_("Menu Order"), max_length=512, blank=True, null=True)
is_active = models.CharField(_("Is Active"), max_length=256, blank=True, null=True)
menutype = models.CharField(_("Menu Type"), max_length=256)
slug = models.SlugField(_("Slug"), max_length=256, blank=True, null=True, unique=False)
datecreated = models.DateField(_("Date Created"), auto_now=True)
class Meta:
verbose_name = _("Mainmenu")
verbose_name_plural = _("Mainmenus")
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super().save(*args, **kwargs)
class Submenu(models.Model):
name = models.CharField(_("Submenu Name"), max_length=256, blank=True, null=True)
mainmenu = models.ForeignKey(
Mainmenu, verbose_name=_("Main Menu"), on_delete=models.CASCADE, related_name="submenu"
)
menulink = models.CharField(_("Submenu Link"), max_length=512, blank=True, null=True)
order = models.CharField(_("Submenu Order"), max_length=512, blank=True, null=True)
is_active = models.CharField(_("Is Active"), max_length=256, blank=True, null=True)
menutype = models.CharField(_("Submenu Type"), max_length=256, blank=True, null=True)
slug = models.SlugField(_("Slug"), max_length=256, blank=True, null=True, unique=True)
datecreated = models.DateField(_("Date Created"), auto_now=True)
class Meta:
verbose_name = _("Submenu")
verbose_name_plural = _("Submenus")
型
1条答案
按热度按时间8ehkhllq1#
谢谢大家,我发现了我的错误,我的代码现在工作正常。我将子菜单的迭代放置在错误的位置,即覆盖unoderlist
<ul>
标签,而它应该只覆盖列表<li>
标签。这是一个HTML问题。请参阅下面的代码。谢谢大家。
字符串