0

我正在学习 Python 和 Django,并且正在构建一个测试博客。我没有遵循 Django 书中给出的官方教程(我发现它很难理解和学习),而是遵循这里给出的教程。这对我了解管理界面以及模板部分的内容有很大帮助(包括一些示例 HTML,我认为它不包含在 Django 官方书籍中)。

这是我的 urls.py 示例(位于 myproject/myproject/urls.py 中):

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'myblog.views.home', name='home'),
    # url(r'^myblog/', include('myblog.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('blog.urls')),
)

这是我的 urls.py 的示例(位于 myproject/blog/urls.py 中):

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^$', 'blog.views.liist'),
    (r'^archive/(\d{1,2})/$', 'blog.views.liist'),
    (r'^\d{4}/d{1,2}/(.*)/$', 'blog.views.detail'),
    (r'^(\d{4})/(\d{1,2})/$', 'blog.views.month'),
    (r'^(\d{4})/$', 'blog.views.year'),
    (r'^category/$', 'blog.views.category'),
    (r'^category/(.*)/$', 'blog.views.one_category'),
    (r'^tag/$', 'blog.views.tag'),
    (r'^tag/(.*)/$', 'blog.views.one_tag'),

)
  • 127.0.0.1:8000 - 有效
  • 127.0.0.1:8000/admin - 有效
  • 127.0.0.1:8000/2013/2/fourth-post/ - 404

有什么我错过的吗?有人可以指出故障排除的步骤,或者检查什么,或者哪个部分会引发错误?因为我不知道从哪里开始进行故障排除。

我需要在这里发布任何其他信息来帮助我的情况吗?

  • Django 版本 - 1.4.3
  • Python 版本 - 2.7
  • 操作系统 - Windows XP

提前致谢。

编辑:

这就是我的 views.py 文件中“详细信息”功能的样子:

def detail(request,sl):
    try:
         post = Post.objects.filter(slug=sl)[0]
         try:
              previous_post = post.get_previous_by_published()
         except:
              previous_post = ""
         try:
              next_post = post.get_next_by_published()
         except:
              next_post = ""
    except:
         next_post = ""
         previous_post = ""
         post = ""
    return render_to_response('blog/detail.html', {'post':post,
                                            'next_post':next_post,
                                            'previous_post':previous_post,
                                           },)
4

1 回答 1

2

尝试:

(r'^(\d{4})/(\d{1,2})/([-\w]+)/$', 'blog.views.detail')

另外,一定要查看有关 URL 的官方文档:https ://docs.djangoproject.com/en/1.4/topics/http/urls/#overview

于 2013-02-21T15:12:23.623 回答