Параметры URL Django из внешних приложений - PullRequest
0 голосов
/ 01 июля 2010

Я использую Django, и у меня есть следующий URL в файле urls.py моего проекта.

(r'^user/(?P<username>[\w_\-\.]+)/my_app/', include('my_app.urls')),
(r'^user/(?P<username>[\w_\-\.]+)/my_other_app/', include('my_other_app.urls')),
...

Цель состоит в том, чтобы иметь приложение, которое использует имя пользователя, например приложение профиля, где у каждого пользователя есть страница профиля. Только одно представление в этом приложении должно иметь имя пользователя в URL (то, которое отображает страницу профиля), но все представления должны принимать параметр username, даже если они ничего с ним не делают.

Я подозреваю, что такое использование параметров URL неверно, поскольку оно заставляет каждое представление my_app принимать имя пользователя в качестве параметра (поскольку оно передается как от диспетчера URL). Для меня не имеет смысла, чтобы внешний компонент (файл проекта urls.py) сообщал URL-адресам my_app, какие параметры принимать.

Это использование правильно? Если нет, то как мне это сделать?

1 Ответ

0 голосов
/ 01 июля 2010

Это кажется странным.

Не могли бы вы переключить свои приложения вместо поиска имени пользователя?Под my_app.urls и последним просто укажите в нужных полях поле username.

Таким образом, ваша структура будет выглядеть примерно так:

/user/my_app/friends/hekevintran/

/user/my_other_app/connections/bartek/

Это работает так же хорошо и не заставляет ваши приложения полагаться на контекст вашего корневого проекта для имени пользователя.

...