Django 其他模板未继承我的基础模板中的FOR循环
这个循环实际上是用于导航的。列出每个类别下销售或提供服务的类别和商店。 请我不熟悉Django和Python。我很抱歉,如果我很慢得到这些东西。。。谢谢 models.pyDjango 其他模板未继承我的基础模板中的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
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})