【发布时间】:2014-01-30 21:47:35
【问题描述】:
通过投票教程修改它以制作博客。 (Django 1.6)
在 index.html 中,当它像这样硬编码时,我可以获得一个指向正确 URL 的超链接:
<h2><a href="/blog/{{ entry.id }}/">{{ entry.title }}</a></h2>
但是当我使用 URL 模板标签时,我得到一个 404(我在项目 urls.py 中命名博客)
<h2><a href="{$ url 'blog:detail' entry.id %}/">{{ entry.title }}</a></h2>
我得到的 404 页面将原始 Django 代码传递到 URL 中
Page not found (404)
Request Method: GET
Request URL: http://localhost:8000/blog/%7B$%20url%20'blog:detail'%20entry.id%20%%7D/
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^polls/
^blog/ ^$ [name='index']
^blog/ ^(?P<entry_id>\d+)/$ [name='detail']
^blog/ ^(?P<entry_id>\d+)/comment/$ [name='comment']
^admin/
The current URL, blog/{$ url 'blog:detail' entry.id %}/, didn't match any of these.
这是博客应用程序中的 urls.py
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^(?P<entry_id>\d+)/$', views.detail, name='detail'),
url(r'^(?P<entry_id>\d+)/comment/$', views.comment, name='comment'),
)
以下是相关观点:
def index(request):
latest_entries = Entry.objects.order_by('-pub_date')[:5]
tags = Tags.objects.filter()
context = {'latest_entries': latest_entries, 'tags': tags}
return render(request, 'entries/index.html', context)
def detail(request, entry_id):
entry = get_object_or_404(Entry, pk=entry_id)
return render(request, 'entries/detail.html', {'entry': entry})
【问题讨论】: