0

Цикл фактически предназначен для навигации. Список категорий и магазинов, которые продают или оказывают услуги по каждой категории. Пожалуйста .. Я новичок в Django и Python. И я прошу прощения, если я очень медленно, чтобы получить это вещи ... СпасибоДругие шаблоны не наследуют FOR LOOP в моем базовом шаблоне

models.py

class ShopCategories(models.Model): 
category = models.CharField(max_length=50, unique=True) 
def __str__(self): 
    return self.category 

class NewShop(models.Model): 
    category = models.ForeignKey(ShopCategories) 
    main_image = models.FileField(null=True, blank=True) 
    name = models.CharField(max_length=100, unique=True) 
    tagline = models.CharField(max_length=50, default='Enter tagline here2') 
    description = models.TextField(default='enter shop description') 
    shop_image = models.FileField(null=True, blank=True) 

views.py

def homepage(request): 
    return render_to_response('index.html') 

def basefile(request): 
    cat1 = NewShop.objects.filter(category_id=1) 
    cat2 = NewShop.objects.filter(category_id=2) 
    cat3 = NewShop.objects.filter(category_id=3) 
    cat4 = NewShop.objects.filter(category_id=4) 
    name1 = ShopCategories.objects.filter(id=1) 
    name2 = ShopCategories.objects.filter(id=2) 
    name3 = ShopCategories.objects.filter(id=3) 
    name4 = ShopCategories.objects.filter(id=4) 

    return render_to_response('base.html', {'Shop_cat1':cat1, 'Shop_cat2':cat2, 'Shop_cat3':cat3, 
             'Shop_cat4':cat4,'shop_name1':name1, 'shop_name2':name2, 
             'shop_name3':name3, 'shop_name4':name4}) 

base.html

<ul class="nav navbar-nav"> 
    <li class="current-menu-item"> 
    <ul class="nav navbar-nav"> 
     <li class="current-menu-item"> 
      <a href="/">ENTOURAGE MALL</a> 
     </li> 
     <li class="dropdown pi-mega-fw menu-item-has-children"> 
      <a href="#" data-toggle="dropdown" class="dropdown-toggle" role="button">SHOPS</a> 
    <ul class="dropdown-menu"> 
     <li> 
      <div class="pi-mega-content"> 
       <div class="row"> 
       <div class="col-md-3 pi-mm-col"> 
        <ul class="pi-mm-list"> 
        {% for shop in shop_name1 %} 
         <li> 
          <h3> {{ shop }}</h3> 
         </li> 
        {% endfor %} 
        {% for cat in Shop_cat1 %} 
         <li><a href="#">{{ cat }}</a></li> 
        {% endfor %} 
        </ul> 
       </div> 
       <div class="col-md-3 pi-mm-col"> 
        <ul class="pi-mm-list"> 
        {% for shop in shop_name2 %} 
         <li> 
          <h3> {{ shop }}</h3> 
         </li> 
        {% endfor %} 
        {% for cat in Shop_cat2 %} 
         <li><a href="#">{{ cat }}</a></li> 
        {% endfor %} 
        </ul> 
       </div> 
       <div class="col-md-3 pi-mm-col"> 
        <ul class="pi-mm-list"> 
        {% for shop in shop_name3 %} 
         <li> 
          <h3> {{ shop }}</h3> 
         </li> 
        {% endfor %} 
        {% for cat in Shop_cat3 %} 
         <li><a href="#">{{ cat }}</a></li> 
        {% endfor %} 
        </ul> 
       </div> 
      </div> 
      </div> 
     </li> 
    </ul> 
</li> 
<li class="menu-item"> 
    <a href="contact" role="button">ENTOURAGE LOUNGE</a> 
</li> 
<li class="menu-item"> 
    <a href="contact" role="button">About MALL</a> 
</li> 
<li class="menu-item"> 
    <a href="contact" role="button">BLOG</a> 
</li> 
</ul> 

index.html

{% extends "base.html" %} 

{% block title %} This is Homepage {% endblock title %} 

Urls.py

urlpatterns = [ 
url(r'^admin/', admin.site.urls), 
url(r'^$', views.homepage), 
url(r'^base/', views.basefile) 
] 

if settings.DEBUG: 

urlpatterns += static(settings.STATIC_URL, document_root= settings.STATIC_ROOT) 
urlpatterns += static(settings.MEDIA_URL, docuemt_root= settings.MEDIA_ROOT) 

Это прекрасно работает в base.html. Но когда i {% расширяет base.html%} в индексе или других шаблонах. Шаблоны загружаются просто отлично, но цикл FOR не работает. Что именно я делаю неправильно?

+0

где вы реализуете контекст 'shop_name1' на внутреннем интерфейсе? –

+0

@SancaKembang Я действительно не понимаю, что вы имеете в виду. –

+0

для shop_name1 в shop_name1? интересный цикл –

ответ

0

Вы должны обеспечить контекст в представлении домашней страницы таким же образом, как с точки зрения basefile:

def homepage(request): 
    cat1 = NewShop.objects.filter(category_id=1) 
    cat2 = NewShop.objects.filter(category_id=2) 
    cat3 = NewShop.objects.filter(category_id=3) 
    cat4 = NewShop.objects.filter(category_id=4) 
    name1 = ShopCategories.objects.filter(id=1) 
    name2 = ShopCategories.objects.filter(id=2) 
    name3 = ShopCategories.objects.filter(id=3) 
    name4 = ShopCategories.objects.filter(id=4) 

    return render_to_response('index.html', {'Shop_cat1':cat1, 'Shop_cat2':cat2, 'Shop_cat3':cat3, 
             'Shop_cat4':cat4,'shop_name1':name1, 'shop_name2':name2, 
             'shop_name3':name3, 'shop_name4':name4}) 
Смежные вопросы