2014-09-27 143 views
0

其实我试图获取产品详细信息,但是当我转到127.0.0.1:8000/mobiles/motorola-moto-g-16gb时,它正在加载模板,但什么都没显示,甚至没有显示不显示任何错误。Django:详细信息没有显示,也没有错误

注意:'mobiles'是url中的类别,其余部分在产品模型中可以看到。

models.py

from django.db import models 
from django.utils.text import slugify 

class Category(models.Model): 
    name = models.CharField(max_length=128, unique=True) 

def __unicode__(self): 
    return self.name 


class Product(models.Model): 
    title = models.CharField(max_length=140) 
    slug = models.SlugField(null = True, blank = True) 
    imgurl = models.CharField(max_length=500) 
    price = models.CharField(max_length=100) 
    category = models.ForeignKey(Category) 

    def save(self, *args, **kwargs): 
     if not self.id: 
      self.slug = slugify(self.title) 
    super(Product, self).save(*args, **kwargs) 

def __unicode__(self): 
    return self.title 

views.py

from django.shortcuts import render_to_response, get_object_or_404, Http404 
from django.template import RequestContext 
from cat.models import Category, Product 

def detail(request, slug, category_name_url): 
try: 
    category = Category.objects.get(name=category_name_url) 
    product = Product.objects.get(slug=slug) 

except Product.DoesNotExist: 
    raise Http404 

return render_to_response('product/detail.html', {'product': product, 'category_name': category_name_url}) 

urls.py

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from cat import views 

urlpatterns = patterns('', 
url(r'^$', views.index, name='index'), 
url(r'^(?P<category_name_url>\w+)/$', views.category, name='category'), 
url(r'^(?P<category_name_url>\w+)/(?P<slug>[-\w]+)$', views.detail , name='detail'), 
) 

产品/ detail.html

<h1>{{ object.title }}</h1> 
<p> {{ object.price }}</p> 
<img src="{{ object.imgurl }}"> 

回答

2

既然你逝去的“产品”在你的情况下,你必须使用“产品”在你的模板。

return render_to_response('product/detail.html', {'product': product, 'category_name': category_name_url})

因此,模板代码应该是:

<h1>{{ product.title }}</h1> 
<p> {{ product.price }}</p> 
<img src="{{ product.imgurl }}">