弹头网址正则表达式在Django(Slug Url Regex in Django)

2019-08-04 03:42发布

读了很多关于正确使用塞来创建对象列表的详细视图后。 不过,我仍然有得到它的问题为我工作。 我在我的模板像显示对象的列表:

{% 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()

谢谢你的帮忙!

Answer 1:

你不传递任何参数来构建detail URL。 你可能想这样做:

{% url "detail" thing.slug %}

这将创造一个detail被填充到给定的URL蛞蝓。



文章来源: Slug Url Regex in Django