2014-02-09 63 views
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') 

回答

1

第二視圖是使用render快捷的視圖,因此上下文處理器運行時,其包括在所述上下文中的STATIC_URL變量。第一個視圖使用舊的render_to_response快捷方式,默認情況下它不運行上下文處理器。將其更改爲使用render

相關問題