2014-02-06 39 views
0

我試圖創建我的模型的詳細視圖:Product。將slug字段傳遞給url

但是,我沒有得到如何將slug字段傳遞到URL。

這是我的詳細視圖:

def single_product(request): 
    product = get_object_or_404(prods, slug=slug) 
    return render_to_response('teste.html', locals(), context_instance=RequestContext(request)) 

這是我的模型:

class Product(models.Model): 
    name = models.CharField(max_length=500) 
    #inserir slugify na url do produto 
    slug = models.SlugField(max_length=500) 
    category = models.ForeignKey(Category) 
    image = models.ImageField(upload_to='thumbs/') 
    created = models.DateTimeField(auto_now=True, auto_now_add=False) 
    updated = models.DateTimeField(auto_now=True, auto_now_add=True) 

這是蛞蝓產品1的值: 'Kinect的-的Xbox-360' 但是,當我嘗試運行:[本地主機]/Kinect的-的Xbox-360/ 我得到這個消息:

TypeError at /kinect-xbox-360/ 
'str' object is not callable 

回答

3

您需要將slu add添加到您的urls.py中的相應網址。這將作爲然後在視圖參數傳遞:

urls.py

... 
url(r'^product/(?P<slug>[\w-]+)/$', 'views.single_product', name='detail'), 
... 

read more about the url dispatcher

views.py

def single_product(request, slug): 
    product = get_object_or_404(prods, slug=slug) 
    return render_to_response('test.html', locals(), context_instance=RequestContext(request)) 

read more about writing function-based views

+0

我嘗試過url(r'^(?P [\ w - ] +)/ $','single_product',name ='detail'),就像你說的那樣,但我仍然在'typeError at/kinect-xbox -360 /」 –