【发布时间】:2026-01-03 23:10:01
【问题描述】:
这是我的 django 应用程序的一部分,我想使用 get_absolute_url 创建链接,但出现错误:
Reverse for 'details' with arguments '()' and keyword arguments '{'slug': 'product'}' not found. 0 pattern(s) tried: []
我的模特:
class PortfolioItem(models.Model):
name_item = models.CharField(max_length=120)
slug = models.SlugField(unique=True)
date_from = models.DateField('date from')
date_to = models.DateField('date to')
description = models.TextField()
author = models.ForeignKey(User)
def __str__(self):
return self.name_item
def get_absolute_url(self):
return reverse('details', kwargs={"slug": self.slug})
这是我的看法:
class PortfolioDetail(DetailView):
model = PortfolioItem
template_name = "portfoliodetail.html"
这是我的网址:
urlpatterns = [
url(r'^$', PortfolioList.as_view(), name='home'),
url(r'^portfolio/(?P<slug>\w+)/$', PortfolioDetail.as_view(), name='details'),
]
这是一个模板:
<ul>
{% for i in portfolioitem_list %}
<li><a href="{{ i.get_absolute_url }}">{{ i.name_item }}</a></li>
{% endfor %}
</ul>
【问题讨论】:
-
lol != details,您使用的实际代码是什么? -
@Sayse 抱歉,已更正!
-
这些 url 有命名空间吗?
-
是的,在这个地址下:
url(r'^portfolio/', include('portfolio.urls', namespace='portfolio')),