regex - Django 中的 Slug Url 正则表达式

标签 regex django url slug

在阅读了很多关于正确使用 slug 以从对象列表创建详细 View 之后。但是,我仍然无法让它为我工作。我在模板中显示了一个对象列表,例如:

{% for thing in thing_list %}
   <div class='thing-detail'><a href='{% url detail %}'><img src='theimage.png' />
{% endfor %}

但是我收到了 NoReverseMatch detail 上的错误.

我认为我的正则表达式有问题,或者只是我缺少更好的方法。

正则表达式:
url(r'^thing/(?P<slug>[\w-]+)/$', 'views.detail', name='detail'),

看法:
def detail(request, slug):
    thing = get_object_or_404(Thing, slug=slug)
    return render(request, 'detail.html', {'thing': thing})

模型:
class Thing(models.Model):
    user = models.ForeignKey(User)
    created_on = models.DateTimeField(auto_now_add=True)
    slug = models.SlugField()

    def save(self, **kwargs):
        slug = '%s' % (self.user)
        unique_slugify(self, slug)  ## from http://djangosnippets.org/snippets/1321/
        super(Thing, self).save()

感谢您的帮助!

最佳答案

您没有传递任何参数来构建 detail网址。你可能想要这样做:

{% url "detail" thing.slug %}

这将创建一个 detail填充了给定 slug 的 URL。

关于regex - Django 中的 Slug Url 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13886944/

相关文章:

python:在逗号和点之后拆分字符串

regex - Apache mod_rewrite 正则表达式限制匹配最大量词?

java - 紧凑的正则表达式来解析天数

python - 在 Django 模板中声明变量和 if 语句

iphone - 如何通过短信发送网址?

asp.net - 实现 URL 路由时防止对 .ASPX 页面的正常请求

Javascript:如何用html代码替换所有匹配的字符串

python - 如何使用 django AppConfig.ready()

python - Django 1054 - 字段列表中的未知列

http - 有什么办法可以在 markdown 中显示 URL 参数的 'wordwrap' 长 URL?