Найти - Пользователи
Полная версия: include url и приложения
Начало » Django » include url и приложения
1
romankrv
при использовании приложения django-registration возник вопрос:

если используется функция register определенная в django-registration и у ней есть дефольные входные параметры и вот определение функции
def register(request, success_url=None,
form_class=RegistrationForm, profile_callback=None,
template_name='registration/registration_form.html',
extra_context=None):
Также в своем urls.py я подключаю urls.py этого приложения так:
(r'^accounts/', include('registration.urls')),
Теперь если нужно переопределить входной параметр success_url или какой то другой из них то первое что пришло как это http://docs.djangoproject.com/en/dev/topics/http/urls/#passing-extra-options-to-view-functionsPassing extra options to include.
то есть это будет так:
(r'^accounts/', include('registration.urls'), {'success_url' : '/'})
Но таким способом экстра параметр подставляется ко всем строкам что подключены через инклюд.

То есть таким способом для апликухи django-registration после прохождения через функцию register с экстра параметром нужно будет пройти функцию activate у которой нет экстра параметров которые я передал но так как передача экстра параметра происходит всем сторкам инклудного urls.py то возникнит ошибка.
Теперь вопрос как в таких случаях поступают? Я как понимаю что сторонние приложение модифицировать не есть правильно так как приложение может изменится и нужно будет снова как то подстраивать свой код под это итд.

Спасибо
romankrv
lorien
прописать перед импортированием reigstration.urls отдельной строкой урл для registration.views.register
Но я думаю что все-таки после импортирования так как если перед то это переопределит снова мой установленный параметр в дефолтный параметр
:)
Александр Кошелев
romankrv
Но я думаю что все-таки после импортирования так как если перед то это переопределит снова мой установленный параметр в дефолтный параметр
smile
нет
romankrv
Daevaorn
нет
Да действительно перед.
Это связано с кешированием модулей python-ом что первое попадает то и используется если это связано с импоротм чего либо?
Александр Кошелев
romankrv
Это связано с кешированием модулей python-ом что первое попадает то и используется если это связано с импоротм чего либо?
Хм… нет. С самим питоном это никак не связано. Просто джанга резолвит урлы попорядку, поэтому если надо как-то перехватить какой-то урл, то его паттерн надо ставить раньше “перехватываемого”.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB