我有一个网站,用于购买/销售在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
您可以使用以下网址:
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。