代码之家  ›  专栏  ›  技术社区  ›  Mir Nazim

Django中的example.com/username等用户配置文件URL方案面临问题

  •  2
  • Mir Nazim  · 技术社区  · 15 年前

    在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'),
    )
    

    我的第一个问题是 示例.com/<用户名> 工程罚款 example.com/<username>/any-other-page 没有。他们都以 show_profile 而不是他们自己的观点。

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

    我在这里做错什么了?请告知。

    其次,我希望在处理第一部分本身是可变的URL方案时,对Django最佳实践(陷阱、gotchas等)提供指导。

    谢谢

    1 回复  |  直到 15 年前
        1
  •  2
  •   Ned Batchelder    15 年前

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

    推荐文章