在阅读了很多关于正确使用 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/