[英]Django 2.3 Inside get_absolute_url, Reverse for 'post_detail' not found
主要 urls.py 包括:
path('', include('page.urls', namespace='page'))
頁面應用 urls.py
app_name = 'page'
urlpatterns = [
path('', views.home, name='home'),
path('page/<slug:slug>/', views.page_detail, name='page_detail'),
]
頁面應用模型.py
class Page(models.Model):
.
.
.
def __str__(self):
return '{} by {} {}'.format(self.title, self.created, self.is_active)
def get_absolute_url(self):
return reverse("page_detail", kwargs= {"slug": self.slug })
In page app views.py:
def home(request):
pages = Page.objects.filter(is_active=1)
context = {
"pages":pages
}
return render(request,'page/home.html', context)
def page_detail(request, slug):
details = get_object_or_404(Page, slug=slug, is_active='1')
return render(request,'page/details.html', {'details': details})
In the menu.html under templates/page:
<nav class="collapse navbar-collapse bs-navbar-collapse navbar-right" role="navigation">
<ul class="nav navbar-nav">
{% for obj in pages %}
<li><a href='{{obj.get_absolute_url}}'>{{ obj.title }}</a></li>
{% endfor %}
</ul>
</nav>
為什么我得到:
未找到“page_detail”的反轉。 “page_detail”不是有效的視圖函數或模式名稱。
但是,如果我在模板/頁面下的<li><a href='/page/{{obj.slug}}'>{{ obj.title }}</a></li> in menu.html
使用<li><a href='/page/{{obj.slug}}'>{{ obj.title }}</a></li> in menu.html
它可以正常工作. get_absolute_url 工作不正常。 我究竟做錯了什么?
def get_absolute_url(self):
return reverse("page:page_detail", kwargs= {"slug": self.slug })
當您進行反向 url 查找時,您還應該添加應用程序名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.