0
我正在嘗試創建一個包含2個頁面的應用程序,一個用於查看詳細信息頁面的應用程序。 在這兩個頁面中,我都需要產品的圖像。在常規視圖中,圖像出現,但不在詳細信息頁面中。 這是我的詳細信息頁面的html:圖像出現在一個模板中,但不出現在另一個模板中
<div class="span4">
<h2>{{ prod.name }}</h2><br>
<img alt="" src="{{ STATIC_URL }}{{prod.image}}"></a>
</div>
這裏是爲廣大網頁的HTML(相同的圖像在這裏被定義爲{{values.3.0}}):
{% for key, values in prodmatrix.items %}
<li class="span3">
<div class="product-box">
<span class="sale_tag"></span>
<p><a href="{% url "home" %}{{ values.3.0 }}"><img src="{{ STATIC_URL }}{{values.1.0}}" alt="" /></a></p>
<a href="product_detail.html" class="title">{{ values.0.0 }}</a><br/>
<a href="products.html" class="category">Commodo consequat</a>
<p class="price">#{{values.2.0}} #{{values.2.1}} #{{values.2.2}}</p>
</div></li>
{% endfor %}
兩個模板基於一個基礎,這已經進口的:
{% load static %}
{% load i18n %}
{% load staticfiles %}
下面是詳細的模板的觀點:
def single_product(request, slug):
product = get_object_or_404(Product, slug=slug)
prod = Product.objects.get(slug=slug)
reviews = Review.objects.get(product=prod.id)
reviewmatrix = {}
i = 0
try:
for rev in reviews:
reviewmatrix[str(i)] = [[review.review_text]]
u = User.objects.get(username=rev.user)
i = i + 1
except:
u = User.objects.get(username=reviews.user)
reviewmatrix[str(i)] = [[reviews.review_text]]
return render_to_response('product_detail.html', {'prod':prod, 'reviews':reviews, 'user':u.first_name})
這裏是爲一般模板
def home(request):
if request.user.is_authenticated():
user = request.user
prods = Product.objects.all()
i = 0
prodmatrix = {}
for prod in prods:
# 0 1 2 3
prodmatrix[str(i)] = [[prod.name], [prod.image], [], [prod.slug]]
review = Review.objects.get(product=prod.id) # ^this is for tags
for tags in review.tag.all(): #
print tags.name
prodmatrix[str(i)][2].append(tags.name) # append only tags
i = i + 1
#for prod in prods:
# tags = Review.objects.filter(product=prod.id)
# for tag in tags:
# prodmatrix[str(i)] = [[prod.name], [prod.image], [tag]]
# i = i + 1
return render(request, 'home.html',{'prodmatrix':prodmatrix, 'prods':prods})
else:
products = Product.objects.all()
return render(request, 'home.html',{'products':products})
return render(request, 'home.html')