开发者社区> 问答> 正文

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

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

所以我的问题是,如何使导航栏可点击(我按了奥迪,然后重定向到了过滤所有奥迪零件的新页面)。我需要为此创建URL模式和查看。我不知道如何生成这些URL。

这是一个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

展开
收起
祖安文状元 2020-02-23 16:20:07 975 0
1 条回答
写回答
取消 提交回答
  • 您可以使用以下网址:

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

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

    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
    
    2020-02-23 16:20:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载