Django:错误的 URL 模式?视图不会被调用。

Django: Wrong URL pattern? View doesnt get called.

我有一个包含几个应用程序的项目,其中一个叫做博客。我正在尝试为每个博客帖子呈现一个页面。

models.py (MyProject/Blog/Models)

class Blog(models.Model):
    uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.ForeignKey(User, max_length=40, blank=False)
    title = models.CharField(max_length=40, blank=False)

views.py (MyProject/Blog/Views)

def get_blog(request, blog_id):
    print "THIS STRING IS A TEST"
    blogpost = Blog.objects.get(pk=blog_id)
    context = {'blogpost': blogpost}
    return render(request, 'blog_page.html', context)

urls.py (MyProject/Urls)

urlpatterns = [
    url(r'^$', 'app_1.views.home', name='home'),    
    url(r'^blog/(?P<blog_id>\d+)/$','blog.views.get_blog'),

]

我的一篇博文具有以下 uuid:98bfad8b-c44c-41d0-98d0-158379c3e362
然而,当我去 "example.com/BLOG/98bfad8b-c44c-41d0-98d0-158379c3e362" 时,没有任何反应。
它也没有打印出来 'THIS STRING IS A TEST',这告诉我视图甚至没有被调用。
这是我第一次处理非静态 URLS。我在这里错过了什么?

提前致谢。

你的 url 正则表达式是错误的 \d+ 任何数字 ( 0 through 9 ) 所以你必须确保你的正则表达式捕获 words-.

url(r'^blog/(?P<blog_id>[^/]+)$', 'blog.views.get_blog'),

您必须确保 blog 指向该特定视图..

这样写你的url:

url(r'^blog/(?P<uuid>\w*)$', 'blog.views.get_blog'),

像这样设置博文变量:

blogpost = Blog.objects.get(uuid=uuid)

并将你的 uuid 的十六进制传递给它