2

在 django 应用程序中,我需要创建具有以下结构的 twitter 用户配置文件 url,例如:

  • example.com/<username>
  • example.com/<username>/friends
  • example.com/<username>/blog
  • example.com/<username>/some-page
  • example.com/<username>/some-other-page

我的 urls.py:

urlpatterns = patterns('profiles.views',
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/$', 'show_profile', name='profiles_show_profile'),
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/friends/$', 'show_friends', name='profiles_show_blog'),
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/blog/$', 'show_blog', name='profiles_show_blog'),
)

我的第一个问题是,虽然example.com/<username>工作正常example.com/<username>/any-other-page但没有。他们都以show_profile视图而不是自己的视图结束。

注意:如果我让 urls 将 url 结构更改为example.com/user/<username>

我在这里做错了什么?请指教。

其次,在处理第一部分本身是可变的 url 方案时,我想要关于 django 最佳实践(陷阱、陷阱等)的指导。

谢谢

4

1 回答 1

2

我不明白为什么您的网址不起作用。您可以尝试将第一个模式移到末尾,以便其他模式有机会首先匹配。您描述的问题听起来像example.com/user/any-page,模式匹配“用户/任何页面”作为帐户名称。您显示的正则表达式不会这样做,但您的实际代码可能略有不同?

于 2010-09-12T12:30:08.363 回答