Asm*_*ari 11 python django django-templates
我想要SEO-friendly URL,我现在的网址urls.py:
(ur'^company/news/(?P<news_title>.*)/(?P<news_id>\d+)/$','CompanyHub.views.getNews')
Run Code Online (Sandbox Code Playgroud)
我在模板中使用它:
{% for n in news %}
<a href="{% url CompanyHub.views.getNews n.title,n.pk %}" >{{n.description}}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我用它news_id来对get新闻对象PK.我想转换这个网址:
../company/news/tile of news,with comma/11
Run Code Online (Sandbox Code Playgroud)
至:
../company/news/tile-of-news-with-comma/11
Run Code Online (Sandbox Code Playgroud)
通过在模板中做这样的事情:
{% for n in news %}
<a href="{% url CompanyHub.views.getNews slugify(n.title),n.pk %}" >{{n.description}}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我检查了这些问题:
question1
question2
question3和这篇文章,但他们保存slugify field在数据库中,而我想要按需生成它.另外我想运行查询news_id.
我认为这个问题很好,但我不知道怎么news_id用来取我的news object
Tis*_*sho 10
这将生成所需的URL:
{% for n in news %}
<a href="{% url CompanyHub.views.getNews n.title|slugify n.pk %}" >{{n.description}}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
以上示例保存slugify_field在数据库中,因为它们稍后会搜索它.否则,在数据库中,你将拥有一个普通的标题,并在代码中用于搜索的标题.没有简单的方法来比较它们.但你解释的方式更简单.你会有这样的观点:
def news(request, slug, news_id):
news = News.objects.filter(pk=news_id)
Run Code Online (Sandbox Code Playgroud)
更新:要在slugify中使用unicode符号,首先需要转换.看看这个:如何让Django slugify与Unicode字符串一起正常工作?.它使用Unidecode库
然后添加自定义过滤器:
from unidecode import unidecode
from django.template.defaultfilters import slugify
def slug(value):
return slugify(unidecode(value))
register.filter('slug', slug)
Run Code Online (Sandbox Code Playgroud)
然后在你的模板中使用这个:
{% load mytags %}
<a href="{% url CompanyHub.views.getNews n.title|slug n.pk %}
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
{{ "??? 1 2 3"|slug}}
Run Code Online (Sandbox Code Playgroud)
呈现为:
ying-shi-ma-1-2-3
Run Code Online (Sandbox Code Playgroud)
你有没有试过n.title|slugify,看看它是否适合你.
参考:https://docs.djangoproject.com/en/dev/ref/templates/builtins/? from = olddocs# slugify
注意:虽然这是可能的,但只要确保'slugified'元素永远不会用于路由的任何部分...(即,纯粹仅用于显示)
| 归档时间: |
|
| 查看次数: |
6345 次 |
| 最近记录: |