Django模板-无法遍历此列表并获取菜单项



我有一个项目andromeda,其中有两个应用程序。1是博客,第二个是博客菜单

但当我想从博客应用程序中获取信息时,没有问题,我可以获取所有信息。但当我想从博客菜单中获取菜单项时,我现在遇到了错误,但导航栏是空的。

博客菜单网址.py

from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
path('', include('blogmenu.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)

博客菜单视图.py

from django.shortcuts import render
def Blog_Menu(request):
Menu_items = Menu.objects.all()
template_name = 'front/index.html'
return render(request, template_name, {"Menu_items":Menu_items})

博客菜单模型.py

from django.db import models

class Menu(models.Model):
Menu_name = models.CharField(max_length=100,blank=True)
Menu_slug = models.SlugField(name="სლაგი",blank=True)
Menu_image = models.ImageField(upload_to="menuimages")
Menu_url = models.CharField(name="url",max_length=100,blank=True,null=True)
class Meta:
verbose_name = "მენიუ"
def __str__(self):
return self.Menu_name

示例html模板代码

{% for menu in Menu_items %}
<li class="main-menu-item">
<a href="#" class="main-menu-item-link">just text</a>
</li>
{% endfor %}

当循环中的迭代项时,您应该发布一些内容。您可以在模板中执行以下操作。

{% for menu in Menu_items %}
<li class="main-menu-item">
<a href="#" class="main-menu-item-link">{{ menu.Menu_name }}</a>
</li>
{% endfor %}

在我看来,您只是忘记使用for循环中的对象。

这可能就是你想要的:

{% for menu in Menu_items %}
<li class="main-menu-item">
<a href="#" class="main-menu-item-link">{{ menu.Menu_name }}</a>
</li>
{% endfor %}

如果这也不起作用,那么我建议在您在blogmenu-views.py中进行查询后打印(Menu_items(,看看您是否在那里获得了数据。

另外,不要忘记在视图中导入您的模型.py.

最新更新