Django Шаблон - Не удается перебрать этот список и получить пункт меню - PullRequest
0 голосов
/ 14 марта 2020

У меня есть один проект andromeda, где есть 2 приложения. 1 - это блог, а второй - blogmenu

, но когда я хочу получить информацию из приложения блога, проблем нет, и я могу получить всю информацию. но когда я хочу получить пункт меню из blogmenu, я получаю сообщение об ошибке, но есть пустая панель навигации.

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)

blogmenu 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})

blogmenu models.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 %}

Ответы [ 2 ]

0 голосов
/ 14 марта 2020

Сдается мне, что вы просто забыли использовать объект из для l oop.

Это, вероятно, то, что вы ищете:

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

Если это тоже не сработает, тогда я бы предложил поставить печать (Menu_items) после того, как вы сделаете запрос в представлениях блогового меню. py и посмотрите, откуда ваши данные.

Также не забудьте импортировать вашу модель в views.py.

0 голосов
/ 14 марта 2020

Когда элементы итерации в l oop, вы должны что-то опубликовать. Вы можете сделать следующее в вашем шаблоне.

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