【发布时间】:2011-12-09 05:00:31
【问题描述】:
我目前有一个“博客”应用程序,它将根据用户名显示不同用户的博客文章。这就是我的 urls.py 的样子。
urlpatterns = patterns('blog.views',
url(r'^(?P<blog_author>[^/]+)/$', 'entries', name='blog'),
url(r'^(?P<blog_author>[^/]+)/(?P<entry_slug>[^/]+)/$', 'blog_entry', name='blog_entry'),
)
因此,blog/authorname/ 将列出该特定作者的所有博文条目,blog/authorname/foo-post/ 将呈现特定博文。我正在尝试做的是将校友成员的博文分别永久重定向到blog/alumni/authorname 和blog/alumni/authorname/foo-post/。我在我的用户模型中添加了一个字段,该字段将指示用户是否为校友。
普通用户和校友的视图功能基本相同。到目前为止,这是我一直在尝试做的事情:在 entries 视图函数中,我添加了一些行来检查校友成员。如果某位博客作者是校友,将HttpResponsePermanentRedirect转为blogs/alumni/alumni_author/,由于渲染部分相同,调用相同的entries视图函数。所以基本上,我的entries 函数正在尝试检查成员类型,为普通成员和校友成员呈现视图。
【问题讨论】:
-
在我看来,您只需要使用
url(r'^alumni/(?P<blog_author>[^/]+)/$', 'entries', name='blog_alumni'),设置一个网址,然后当然不要进行重定向。
标签: django redirect django-views django-urls