У меня есть 2 приложения в Django Проект - Saas, а второй - Menu. из Saas я могу получить все в шаблон, но из меню я не могу получить пункты меню в html navbar. Дерево моего проекта
Код в Html Шаблон
{% for item in Menu_list %}
<li class="nav-item dropdown dropdown__megamenu">
<a class="nav-link dropdown-opener" href="#">
{{ item.title }}
</a>
<div class="custom-dropdown-menu custom-megamenu">
<div class="content">
<ul class="megamenu">
<a href="#">menu</a>
</ul>
</div>
</div>
</li>
{% endfor %}
Код для Views.Py
from django.shortcuts import render
from .models import Menu,MenuItem
def index(request):
Menu_list = Menu.objects.all()
MenuItem_list = MenuItem.objects.all()
return render(request, 'header-footer.html',{'Menu_list' : Menu_list,
'MenuItem_list': MenuItem_list,}
)
это у моих моделей в панели администратора все работает нормально, и я не могу добавить пункт меню и подменю, просто не могу получить его из базы данных. или в django можно ли получить базу данных без представлений?
My models
from django.db import models
class Menu(models.Model):
name = models.CharField(
(u'Name'),
max_length=100
)
slug = models.SlugField(
(u'Slug')
)
base_url = models.CharField(
(u'Base URL'),
max_length=100,
blank=True,
null=True
)
description = models.TextField(
(u'Description'),
blank=True,
null=True
)
class Meta:
verbose_name = (u'menu')
verbose_name_plural = (u'menus')
def __unicode__(self):
return u"%s" % self.name
def __str__(self):
return self.__unicode__()
def save(self, *args, **kwargs):
"""
Re-order all items from 10 upwards, at intervals of 10.
This makes it easy to insert new items in the middle of
existing items without having to manually shuffle
them all around.
"""
super(Menu, self).save(*args, **kwargs)
current = 10
for item in MenuItem.objects.filter(menu=self).order_by('order'):
item.order = current
item.save()
current += 10
class MenuItem(models.Model):
menu = models.ForeignKey(
Menu,
verbose_name=(u'Name'),
on_delete=models.CASCADE,
)
order = models.IntegerField(
(u'Order'),
default=500
)
link_url = models.CharField(
(u'Link URL'),
max_length=100,
help_text=(u'URL or URI to the content, eg /about/ or http://test.com/')
)
title = models.CharField(
(u'Title'),
max_length=100
)
login_required = models.BooleanField(
(u'Login required'),
blank=True,
default=False,
help_text=(u'Should this item only be shown to authenticated users?')
)
anonymous_only = models.BooleanField(
(u'Anonymous only'),
blank=True,
default=False,
help_text=(u'Should this item only be shown to non-logged-in users?')
)
class Meta:
verbose_name = (u'menu item')
verbose_name_plural = (u'menu items')
def __unicode__(self):
return u"%s %s. %s" % (self.menu.slug, self.order, self.title)