Regex Django URL

15

Здравствуйте, у меня есть url, и я хочу совместить uuid url выглядит следующим образом:

/мобильный/мобильный-вещь/ 68f8ffbb-b715-46fb-90f8-b474d9c57134/

urlpatterns = patterns("mobile.views",
    url(r'^$', 'something_cool', name='cool'),
    url(r'^mobile-thing/(?P<uuid>[.*/])$', 'mobile_thing', name='mobile-thinger'),
)

но это не работает вообще. Мой соответствующий вид не вызывается. Я тестировал так много вариаций... ahw

но url(r'^mobile-thing/', 'mobile_thing', name='mobile-thinger') работает как шарм, но не группа...

Теги:

2 ответа

32
Лучший ответ

В выражении [.*/] соответствует только символ один, который может быть ., * или /. Вместо этого вам нужно написать (это всего лишь один из многих вариантов):

urlpatterns = patterns("mobile.views",
    url(r'^$', 'something_cool', name='cool'),
    url(r'^mobile-thing/(?P<uuid>[^/]+)/$', 'mobile_thing', name='mobile-thinger'),
)

Здесь [^/] представляет любой символ, но /, а + сразу после этого класса символов один или несколько раз. Вы не хотите, чтобы конечный / был в uuid var, поэтому поставьте его вне круглых скобок.

  • 0
    спасибо большое ... это не вызывает мою функцию просмотра ... я также пробовал так много вариантов ... это может быть проблемой, что эти URL-адреса включены в другие URL-адреса?
  • 1
    Как это включено? Покажите этот код. Проблема почти наверняка есть.
Показать ещё 1 комментарий
2

Попробуйте это регулярное выражение:

\/mobile-thing\/(?P<uuid>.*)\/$

Итак, это будет:

urlpatterns = patterns("mobile.views",
    url(r'^$', 'something_cool', name='cool'),
    url(r'\/mobile-thing\/(?P<uuid>.*)\/$', 'mobile_thing', name='mobile-thinger'),
)
  • 0
    спасибо .. я пропустил, чтобы сказать, что регулярное выражение является частью включенного URL-адреса ... это имеет значение, не так ли?
  • 0
    @Jurudocs сделал эту работу?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню