Mam przypadek, w którym zdefiniowałem niektóre wzorce adresów URL Django, a teraz chcę odzyskać wyrażenie regularne powiązane z danym wzorcem. Chcę tego, ponieważ chcę przekazać te wyrażeń regularnych do klienta, aby móc również sprawdzać adresy URL w kliencie (mówię o manipulowaniu historią po stronie przeglądarki) i uruchamiać odpowiednie programy obsługi (w języku JavaScript), gdy istnieje dopasowanie.Django pobierz zapytanie do regex o nazwie
Na przykład, jeśli mieć
# urls.py
urlpatterns = patterns("",
url(r"^$", Index.as_view(), name="index"),
url(r"^user/", include("User.urls", namespace="User")),
)
# User/urls.py
urlpatterns = patterns("",
url(r"^profile/(?P<slug>.*)$", GetProfile.as_view(), name="get_profile")
)
to muszę się następującą funkcję:
>>> get_regex("User:get_profile")
'^user/profile/(?P<slug>.*)$'
(lub przekłada się jednak Django). Zwróć uwagę, że używam przestrzeni nazw. Jakieś pomysły? Django1.5.
Udało mi się również napisać funkcję, która zwraca obiekt urlpattern powiązany z nazwą przekazaną, jednak wykonanie url.regex.pattern
zwraca '^profile/(?P<slug>.*)$
. Tak więc, jak widać, nie ma wiodącego .
można pokazać kawałek views.py pomocne mogłoby być – drabo2005
@ drabo2005 Jak miałoby to być pomocne? Treść nie ma znaczenia. – freakish
@freakish Po prostu wskaźnik: jeśli spojrzysz na klasę 'RegexURLResolver' w' django.core.urlresolvers.py', ma ona właściwość 'reversed_dict'. Powinien mieć wzór, którego szukasz. Spójrz na linię 385, ten sam plik. – Germano