将urls.py中的变量(标志)传递给django中的views.py.

时间:2011-10-17 10:47:18

标签: django redirect django-views django-urls

我目前有一个'博客'应用,根据用户名显示不同用户的博客帖子。这就是我的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/authornameblog/alumni/authorname/foo-post/。我在我的用户模型中添加了一个字段,用于指示用户是否是校友。

普通用户和校友的观点功能基本相同。这是我到目前为止一直在尝试做的事情:在entries视图函数中,我添加了一些可以检查校友成员的行。如果某个博客作者是校友,则会HttpResponsePermanentRedirectblogs/alumni/alumni_author/,并且由于渲染部分相同,因此请调用相同的entries视图功能。基本上,我的entries函数正在尝试检查成员类型为普通成员和校友成员提供视图

1 个答案:

答案 0 :(得分:7)

您可以使用可选的第三个参数将urlconf中的标志发送到视图:

url(r'^alumni/(?P<blog_author>[^/]+)/$', 'entries', {'alumni': True}, name='blog'),