Возникла проблема со схемой URL профиля пользователя, например example.com/username в django - PullRequest
2 голосов
/ 12 сентября 2010

В приложении django мне нужно создать URL профиля пользователя Twitter со следующей структурой, такой как:

  • 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 вид, а не их собственный вид.

Примечание: Все работает нормально, если я делаю URL, меняю структуру URL на example.com/user/<username>

Что я здесь не так делаю?Пожалуйста, порекомендуйте.

Во-вторых, я хотел бы получить руководство по лучшим практикам django (ловушки, ошибки и т. Д.) При работе со схемами URL, где первая часть сама по себе является переменной.

1 Ответ

2 голосов
/ 12 сентября 2010

Я не понимаю, почему ваши URL не работают. Вы можете попробовать переместить первый шаблон до конца, чтобы другие образцы имели шанс сравниться первым. Проблема, которую вы описываете, звучит как example.com/user/any-page, шаблон соответствует «user / any-page» в качестве имени учетной записи. Регулярное выражение, которое вы показываете, не сделало бы этого, но, возможно, ваш реальный код немного отличается?

...