- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试向我的 django 应用程序中的 url 添加 slug,就像 SO 所做的那样。
目前,我的网页使用这样的 url 就可以正常工作:
http://example.com/foo/123/
我想像这样添加'slugified' url:
http://example.com/foo/123/foo-name-here
我可以让它正常工作,只需修改 urlconf 并向 View 函数添加一次性值:
#urls.py
ulpatterns = patterns('project.app.views',
url(r'^foo/(?P<foo_id>\d+)/(?P<name_slug>\w+)/$', 'foo_detail', name='foo_detail'),
)
#views.py:
def foo_detail(request, foo_id, name_slug):
# stuff here, name slug is just discarded
使用 slug 访问 url 工作正常。
但是,我的问题是在使用 @models.permalink
时。
对于我的 Foo
模型,我曾经有以下内容,效果很好:
@models.permalink
def get_absolute_url(self):
return ('foo_detail', [str(self.id),])
但是,在我更改之后,每当我在我的模板中调用 {{ foo.get_absolute_url }}
时,结果总是一个空字符串。
我尝试了以下两种 get_absolute_url
的替代方法,但都不起作用:
from django.template.defaultfilters import slugify
# attempt 1
@models.permalink
def get_absolute_url(self):
return ('foo_detail', [str(self.id), slugify(self.name)])
# attempt 2
@models.permalink
def get_absolute_url(self):
return ('foo_detail', (), {
'foo_id': str(self.id),
'name_slug': slugify(self.name),
})
请注意,如果我在返回之前添加了一个 print slugify(self.name)
,那么 slugify 名称就会很好地显示在控制台中。
在我的模板中调用 {{ foo.get_absolute_url }}
时,结果总是一个空字符串,我没有收到任何错误。
我知道我可以用 return '/foo/%s/%s' % (str(self.id), slugify(self.name))
替换方法,但我试图让永久链接正常工作,以便我的 URL 只在一个地方定义。我做错了什么?
最佳答案
要检查的一件事,因为我也遇到了这个问题:
(?P<name_slug>\w+)
slugify 是否在任何地方添加连字符?如果是这样,则正则表达式将不匹配,连字符是非单词字符。要修复,请使用 [\w-]+
或类似的。
关于python - Django - 如何获得永久链接以使用 "throwaway"slug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1569837/
我仅使用 slug 来标识网站上的页面,例如: example.tld/view/this-fancy-slug 。这是使用此函数自动从标题生成的: public static function No
哪个是新闻页面上 url 的最佳选择: 动态生成 slug。从对象 ID 加载页面。如果 slug 不匹配,永久重定向到正确的 slug。 myweb.com/542/my-news-item 我看到
slug 是描述或标题页面的 URL 的一部分,通常是该页面的关键字丰富,可改善 SEO。例如在这个网址 PHP/JS - Create thumbnails on the fly or store
刚开始玩 Django,发现了一个链接 here关于如何创建 slug。我被告知对现有模型执行以下更改: from django.template.defaultfilters import slug
我有 2 个自定义帖子类型的帖子。视频帖子和城市指南帖子第一个帖子(视频帖子)包含 url:104.130.239.132/rick-owens/第二个帖子(城市指南)conatins url:htt
我正在创建一个需要 slug 系统的系统。例如,标题为“博客标题:此处”的博客文章的 URL 为: YYYY/MM/DD/the-blog-title-here 我的系统设置得很好,如果您的 URL
我已使用以下代码注册自定义帖子类型: register_post_type( array( 'labels' => // array o
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
我刚刚安装了使用 Sluggable 的学说扩展。 我做这个: Composer .json "stof/doctrine-extensions-bundle": "1.2.*@dev" 应用内核.p
我在为一个私有(private)网站工作。我有 2 个表: 表 A(包含较旧的 slug)。 表 B(新 slug)。 这里的代码用于检查是否存在 slug 并从表 B(单表查询)创建唯一的 slug
我在我的项目中使用了 ui-router,我在文档中看到了两者: .state('app.restaurants.index', { url: '/{slug}', contr
CREATE TABLE news ( id int(11) NOT NULL AUTO_INCREMENT, title varchar (128) NOT NULL, sl
我想转换任何标题,例如一个用户友好的 url 的博客条目。我用了rawurlencode()这样做但它给了我很多奇怪的字符串,比如 %s。 该算法应考虑 Ö、Ä 等德语字符。我想从标题创建一个 url
我想捕获 URL 中的第一个 slug仅限 如果 URL 有一个 slug,如果它在 URL 中有多个 slug 或部分,则忽略它。例如: https://example.com/path/some-
我有一种情况,在 url 的底部我有一个动态 slug 来获取数据。现在我发现我需要一个静态 slug,这将表示一个不同的页面,但仍然可以访问基本动态 slug 以获取信息。 示例路径 /formAB
我正在开发一个简单的博客来学习 Django。我希望每个帖子都有一个这样的路径: /category-1/title-post /category-2/title-post etc.. 低于urls.
该网站非常简单,只有 3 页,主页和 urls.py 中显示的第二个 url 效果很好,但是当我从主题转到单元页面时,我得到: TypeError at /subjects/units/english
在我一直在开发的应用程序中,我遇到了像 /books/:slug, :to => 'books#show', slug:/.*?/ 这样的路由。我很好奇这部分的作用 slug:/.*?/ ? 最佳答案
我尝试使用此查询更改特定帖子的帖子别名: UPDATE wp_posts SET post_name = replace(post_name, 'make-me-happy','make-me-hap
我尝试使用 HarpJS,一个 NodeJS 静态博客生成器。在教程中有这样的元数据示例: for article, slug in public.articles._data a(href="/a
我是一名优秀的程序员,十分优秀!