Django 其他模板未继承我的基础模板中的FOR循环

Django 其他模板未继承我的基础模板中的FOR循环,django,python-2.7,django-models,django-templates,django-views,Django,Python 2.7,Django Models,Django Templates,Django Views,这个循环实际上是用于导航的。列出每个类别下销售或提供服务的类别和商店。 请我不熟悉Django和Python。我很抱歉,如果我很慢得到这些东西。。。谢谢 models.py class ShopCategories(models.Model): category = models.CharField(max_length=50, unique=True) def __str__(self): return self.category class NewShop(models.Model

这个循环实际上是用于导航的。列出每个类别下销售或提供服务的类别和商店。 请我不熟悉Django和Python。我很抱歉,如果我很慢得到这些东西。。。谢谢

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>
url.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{%extensed base.html%}在索引或其他模板中时。模板加载很好,但是FOR循环不起作用。我到底做错了什么?

您应该在主页视图中以与在基本文件视图中相同的方式提供上下文:

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

您在后端实现了
shop\u name1
的上下文吗?@SancaKembang我真的不明白您的意思。对于shop\u name1中的shop\u name1?有趣的loop@AlexanderTyapkov .. 我只是django的初学者。我真的只是学到了很多新东西。我最近刚刚更改了上面提到的变量名。。谢谢请帮我完成FOR循环…@DanielKilanko好的,只需提供更多代码,例如正在使用的视图,也可能是模板的完整版本
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})