繁体   English   中英

Django中的Slug Url Regex

[英]Slug Url Regex in Django

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

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

但是我在detail上得到NoReverseMatch错误。

我认为我的正则表达式有问题,或者只是有一种更好的方法可以解决这个问题。

正则表达式:

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。 你可能想这样做:

{% url "detail" thing.slug %}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM