0

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

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

博客菜单 urls.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)

博客菜单views.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 %}
4

2 回答 2

0

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

{% for menu in Menu_items %}
    <li class="main-menu-item">
      <a href="#" class="main-menu-item-link">{{ menu.Menu_name }}</a>
    </li>
{% endfor %}
于 2020-03-14T14:54:24.773 回答
0

在我看来,您只是忘记使用 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 中进行查询后放置一个 print(Menu_items) 并查看您是否在那里获取数据。

也不要忘记在你的views.py中导入你的模型。

于 2020-03-14T15:04:14.870 回答