我只是从django开始(说实话,python也是)
我正在尝试一种模型方法,它可以减少自身.鼻涕虫从当前URL返回到模板。在
这是我尝试过的方法:
class Category(models.Model):
...
def remove_filter(self):
url = HttpRequest.get_full_path()
slug = '/' + self.slug
return url.replace(slug, '')
但正如你所能想象的,这是行不通的。在
模板的代码段:
^{pr2}$我的核心目标是有一个前端图标,通过删除当前对象的slug更改url。在
我不知道如何通过观点来做,但我愿意接受任何建议。在
def category_page(request, url):
slugs = url.split('/')
active = Category.objects.filter(slug__in=slugs)
sorted_slugs = []
for i in active:
sorted_slugs.append(i.slug)
if slugs != sorted_slugs:
url = '/'.join(sorted_slugs)
return redirect('http://127.0.0.1:8000/catalog/' + url)
inactive = Category.objects.exclude(slug__in=slugs)
return render(request, 'category.html', {'active_filters': active,
'inactive_filters': inactive})
谢谢。在
您可以将所有活动段塞的列表发送到模板,然后构建自定义模板过滤器来构造修改后的url。在
在视图.py
标签_过滤器.py
^{pr2}$你的模板
您的
remove_filter
方法无法访问当前请求。HttpRequest
是类,而不是当前的请求实例。在我建议您将
remove_filter
重写为custom tag or filter。这样,您的函数就可以访问类别和请求实例。您还必须在设置中激活request template context processor。在相关问题 更多 >
编程相关推荐