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

Kau*_*Zaw 3 django redirect django-urls django-views

我目前有一个'博客'应用程序,它将根据用户名显示不同用户的博客帖子.这就是我的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'),
          )
Run Code Online (Sandbox Code Playgroud)

因此,blog/authorname/将列出该特定作者的所有blogpost条目,blog/authorname/foo-post/并将呈现特定的博客帖子.我想要做的是永久地将校友成员的博客重定向到blog/alumni/authornameblog/alumni/authorname/foo-post/.我在我的用户模型中添加了一个字段,用于指示用户是否是校友.

对于普通用户和校友,views功能基本相同.这是我到目前为止一直在尝试做的事情:在entries视图函数中,我添加了一些可以检查校友成员的行.如果某一个博客作者是校友,会HttpResponsePermanentRedirectblogs/alumni/alumni_author/和自渲染部分是一样的,调用同一个entries视图功能.所以基本上,我的entries功能是尝试检查成员类型,为普通和校友成员呈现视图.

Dan*_*man 7

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

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

  • 以正常方式 - 它作为参数传递给函数,就像`blog_author`一样. (2认同)