2017-02-22 73 views
0

我对django非常陌生。请快速帮助,将不胜感激。django中的动态网址

url(r'^shops/(?P<Newshop_id>[0-9]+)/$', views.shop_single, name='singleshop') 

此路径给我找不到页面错误。

models.py

from __future__ import unicode_literals 
from django.db import models 

class SliderTitle(models.Model): 
    slider_title = models.CharField(max_length=20) 
    def __str__(self): 
     return self.slider_title 

class Slider(models.Model): 
    slider_type = models.OneToOneField(SliderTitle) 
    slider = models.FileField(blank=True) 
    def __str__(self): 
     return str(self.slider_type) 

class ShopCategories(models.Model): 
    category = models.CharField(max_length=50, unique=True) 
    def __str__(self): 
     return self.category 

class NewShop(models.Model): 
    category = models.ForeignKey(ShopCategories) 
    main_image = models.FileField() 
    name = models.CharField(max_length=100, unique=True) 
    tagline = models.CharField(max_length=50, default='Enter tagline here2') 
    description = models.TextField(default='enter shop description') 
    shop_image = models.FileField() 
    def __str__(self): 
     return self.name 

urls.py

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', views.homepage, name='homepage'), 
    url(r'^about/', views.about, name='about'), 
    url(r'^shops/(?P<Newshop_id>[0-9]+)/$', views.shop_single, name='singleshop') 

views.py

def shop_single(request, Newshop_id): 
    cat1 = NewShop.objects.filter(category_id=1) 
    cat2 = NewShop.objects.filter(category_id=2) 
    cat3 = NewShop.objects.filter(category_id=3) 
    cat4 = NewShop.objects.filter(category_id=4) 
    name1 = ShopCategories.objects.filter(id=1) 
    name2 = ShopCategories.objects.filter(id=2) 
    name3 = ShopCategories.objects.filter(id=3) 
    name4 = ShopCategories.objects.filter(id=4) 

    return render_to_response('shop_single.html', {'shop_name1': name1, 'shop_name2': name2, 'shop_name3': name3, 
              'shop_name4': name4, 'Shop_cat1': cat1, 'Shop_cat2': cat2, 
              'Shop_cat3': cat3, 
              'Shop_cat4': cat4, }) 

my DB from phpmyadin

+0

你看到的堆栈跟踪是什么? – karthikr

+0

包含像“(?P [0-9] +)”这样的正则表达式的URL通常用于* retreive *现有的对象记录。 'Newshop_id'变量显然不会在你的视图中使用,这意味着你没有检索任何东西。这种观点你打算发生什么? – ChidG

+0

你甚至没有说过你实际上要到什么网址。 –

回答

1

我想你永远不会使用newshop_id在您的视图。

因此,您不必在您的视图和网址中传递该newshop_id。

+0

非常感谢,我不得不再次阅读URL的完整文档。我修好了。学习编程语言需要大量的耐心和持久性 –