【发布时间】:2015-12-22 23:35:02
【问题描述】:
def index(request):
context_dict = {}
#products_page_all = ProductsPageAll.objects.all()
#context_dict['products_page_all'] = products_page_all
#for x in products_page_all:
# pages = ProductsPageViews.objects.filter(product=x)
# context_dict['pages'] = pages
#for productpage in products_page_all:
# for page in productpage.productspageviews_set.all:
products_page_all = ProductsPageAll.objects.all().prefetch_related('productspageviews_set')
context_dict['products_page_all_list'] = products_page_all
return render(request, 'pec/index.html', context_dict)
不提取productspageviews_set的查询相关的预取。 我想获取两个模型的所有对象,然后将其渲染到模板。 如果我使用错误的查询,请给我建议。 我对 DJANGO 很陌生。
这是我的模型。
class ProductsPageAll(models.Model):
product_name = models.CharField(max_length=500, unique=True)
product_image = models.ImageField(upload_to='img/products')
product_description = models.CharField(max_length=1000)
def __unicode__(self):
return self.product_name
return self.product_description
class ProductsPageViews(models.Model):
product = models.ForeignKey(ProductsPageAll)
product_view_image = models.ImageField(upload_to='img/products/views')
product_view_content = models.CharField(max_length=500)
product_view_description = models.CharField(max_length=1000)
def __unicode__(self):
return self.product_view_content
return self.product_view_description
这是我渲染对象的模板。 但只有 pageviews.product_name 在 FOR 循环下工作 N 不获取任何数据 它只给我一个空白列表
{% for pageviews in products_page_all_list %}
<div class="row">
<div class="col-lg-12 text-center">
<h3 class="section-subheading text-muted">{{ pageviews.product_name }}</h3>
</div>
</div>
{% for a in products_page_all_list.productspageviews_set.all %}
<div class="row text-center">
<div class="col-sm-4">
<img src="{{a.product_view_image.url}}" class="img-responsive" alt="">
<h4 class="service-heading">{{a.product_view_content}}</h4>
<p class="text-muted">{{a.product_view_description}}</p>
</div>
</div>
{% endfor %}
<div class="row">
<div class="col-lg-8 col-lg-offset-2 text-center">
<div class="button-div">
<a href="/products" class="btn btn-xl">Tell Me More</a>
</div>
</div>
</div>
{% endfor %}
【问题讨论】:
-
对不起,大喊大叫。
标签: python django django-models django-templates django-views