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 的十六进制传递给它
我有一个包含几个应用程序的项目,其中一个叫做博客。我正在尝试为每个博客帖子呈现一个页面。
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 的十六进制传递给它