Django新手-NoReverseMatch错误
刚开始使用Django,但遇到了点麻烦-我决定在参考Django basic应用程序库的同时尝试编写一个简单的博客引擎 在blog/urls.py中,我将此条目映射到日期对应的实际帖子,例如blog/2009/aug/01/test postDjango新手-NoReverseMatch错误,django,django-urls,Django,Django Urls,刚开始使用Django,但遇到了点麻烦-我决定在参考Django basic应用程序库的同时尝试编写一个简单的博客引擎 在blog/urls.py中,我将此条目映射到日期对应的实际帖子,例如blog/2009/aug/01/test post urlpatterns = patterns('', url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)
urlpatterns = patterns('',
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$', 'blog.views.post_detail'),
...
在这个模型中,我实现了get_absolute\u url
,这样我就可以在主博客页面上单击一篇文章的标题来查看它:
class Content(models.Model):
...
@permalink
def get_absolute_url(self):
return ('blog.views.post_detail', (), {
'slug': self.slug,
'year': self.created_at.year,
'month': self.created_at.strftime('%b').lower(),
'day': self.created_at.day
})
最后,在主页的帖子列表中,应该在标题中插入永久链接:
{% for content in object_list %}
<div class="content_list">
<h3 class="content_title"><a href="{{ content.get_absolute_url }}">{{ content.title }}</a></h3>
<p class="content_date">{{ content.published_at|date:"Y F d"}}</p>
<p class="content_body">{{ content.body }}</p>
<p class="content_footer">updated by {{ content.author }} at {{ content.updated_at|timesince }} ago</p>
</div>
{% endfor %}
编辑:原来这是一个Python名称空间问题(见下文)。但不管怎样,上面显示的我的url.py是否不正确?在谷歌上搜索了其他Django新手教程,并想出了将所有URL放入父文件夹url.py的主意,这似乎解决了问题。:)最后,我的mainurl.py现在有:
from djangoblog.blog import views
urlpatterns = patterns('',
(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$',
views.post_detail),
(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/$',
views.post_archive_day),
...
NoReverseMatch: Reverse for '<function post_detail at 0xa3d59cc>' with arguments '()' and keyword arguments '{'year': 2009, 'slug': u'another_test', 'day': 15, 'month': 'aug'}' not found.
from djangoblog.blog import views
urlpatterns = patterns('',
(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$',
views.post_detail),
(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/$',
views.post_archive_day),
...
from blog import views
...
(r'(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$',
'object_detail', dict(info_dict, slug_field='slug', month_format='%m'),
'post_detail'),
...
(r'category/(?P<slug>[-\w]+)/$', views.category_detail),
class Post:
@permalink
def get_absolute_url(self):
return ('post_detail', (), {
....
class Category:
@permalink
def get_absolute_url(self):
return ('blog.views.category_detail', (), {'slug': self.slug})