使用Python Django框架自动生成的URL

时间:2013-09-20 13:24:44

标签: python django

我有一个网站,用于购买/销售在Python Django框架上运行的汽车零件。我有一个导航栏,显示我有多少汽车零件库存(e.x奥迪(1),宝马(23)......)。当我在我的数据库(mysql)导航栏中添加新项目时,自动重新计算所有项目。如果汽车制造商在列表中没有标题,则会创建一个。

所以我的问题是,我怎么能点击这个导航栏(我按下奥迪,我被重定向到所有奥迪部分都被过滤的新页面)。我需要创建URL模式和View。我不知道如何生成这些网址。

这是views.py:

def sell_view(request):
entries = Parduodami.objects.all()
modeliai = []
for item in entries:                   #if there are no brand in a list, it adds it
    if item.brand not in modeliai:
        modeliai.append(item.brand)
modeliai.sort()
modeliai_kiekis = []
for item in modeliai:
    modeliai_kiekis.append(Parduodami.objects.filter(brand=str(item)).count()) #counts how many items by that brand is there    
ctx = {'entries':entries, 'modeliai': zip(modeliai_kiekis, modeliai)}
return render(request, 'parduodami.html', ctx)

Models.py:

class Parduodami(models.Model):
brand = models.CharField(max_length=30)
name = models.CharField(max_length=40)
model_year = models.CharField(max_length=20)
engine_code = models.CharField(max_length=20, blank=True, null=True)
engine_type = models.CharField(max_length=20, blank=True, null=True)
cc = models.CharField(max_length=10)
power = models.CharField(max_length=20, blank=True, null=True)  
transmition_type = models.CharField(max_length=20)
selling_part = models.TextField()
published = models.BooleanField()

def __unicode__(self):
    return self.name

foto

很抱歉,如果我的问题很难理解。

提前致谢!

1 个答案:

答案 0 :(得分:0)

你可以制作这样的网址:

url(r'/brand/(?P<brand_name>\w', views.brand_display, name='brand_display')

然后在视图中,您可以访问在网址中输入的brand_name

def brand_display(request, brand_name):
    # then load the brand by name: 
    test = Parduodami.objects.get(brand__iexact=brand_name)

然后在模板中打印网址,如下所示:

{% url brand_display 'audi' %}

或手动:(使用{%url%}!)

/brand/audi