2011-10-17 27 views
3

我目前有一个'blog'应用程序,它将根据用户名显示不同用户的blogposts。这就是我的urls.py的样子。将一个变量(一个标志)从urls.py传递到django中的views.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/。我在用户模型中添加了一个字段,用于指示用户是否是校友。

对于普通用户和校友来说,views功能基本相同。以下是我一直在努力做的事情:在entries视图函数中,我添加了一些可以检查校友成员的行。如果某个博客作者是校友,则将HttpResponsePermanentRedirectblogs/alumni/alumni_author/与自渲染部分相同,调用相同的entries查看功能。所以基本上,我的entries功能正在尝试检查成员类型,为正常和校友成员呈现视图。

+0

它看起来对我说,你只需要建立一个URL'URL(R'^校友/ (?P [^ /] +)/ $','entries',name ='blog_alumni'),'当然不做重定向。 –

回答

6

您可以从URLconf中通过使用可选的第三个参数发送一个标志,认为:

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

请原谅我的小吃。我将如何从我的查看功能访问该标志? –

+2

以正常的方式 - 它作为参数传递给函数,就像'blog_author'一样。 –

相关问题