Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2013 17:53:05

rss
Зарегистрирован: 2013-09-28
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярка

url(r'([a-z]+)/$', 'deals', name = 'deals'),
url, типа localhost/any/deals/
но как не страно, это может быть и:
localhost/any/deals/gfdg/
localhost/any/deals/dfsg/dfsgfds/dfsgdfg/sdfgdsf/

стоит же конец строки $

может что-то в с django 1.5.5

Отредактировано rss (Окт. 26, 2013 17:54:03)

Офлайн

#2 Окт. 26, 2013 22:05:45

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2763
Репутация: +  185  -
Профиль   Отправить e-mail  

регулярка

Как-то так:

r'^any/deals/([a-z]+)/$'



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Окт. 26, 2013 22:05:48

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

регулярка

вначало ^ добавь

Офлайн

#4 Окт. 27, 2013 07:57:33

rss
Зарегистрирован: 2013-09-28
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярка

забыл указать, это url приложения any, есть еще глобальный:

url(r'^any/', include('any.urls')),

т.е. Вроде как должно быть: localhost/any/someurl/
никак не localhost/any/deals/sdaf/ или localhost/any/deals/dfgs/sdfgfds/dsfgdf/ …

Отредактировано rss (Окт. 27, 2013 07:59:43)

Офлайн

#5 Окт. 27, 2013 10:34:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

регулярка

Вообще так не делают.
Обычно урл строят по такому принципу

www.site_name.ru/Приложение/Действие/Параметр1/Параметр2
Взять хотя-бы этот топик
http://python.su/forum/topic/22670
То есть количество параметров должно быть известно, чтобы с ними можно было работать.
def view(request, Параметр1, Параметр2):
То как у Вас это не очень правильно. Только если какой-нибудь сумасшедший сеошник захотел слеши в ЧПУ.
Если сильно хочется, то можно
#urls.py
url(r'^any$', include('any.urls')),
#any.urls.py
url(r'^([-a-zA-Z0-9_/]+)/', view, name=name),



Отредактировано FishHook (Окт. 27, 2013 10:47:07)

Офлайн

#6 Окт. 27, 2013 10:49:59

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

регулярка

Если же нужно передавать действительно много параметров, то лучше запихать их в ГЕТ



Офлайн

#7 Окт. 27, 2013 14:16:48

rss
Зарегистрирован: 2013-09-28
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярка

честно говоря, не совсем понял, в чем моя ошибка
project/urls.py

url(r'^any/', include('any.urls')),
project/any/urls.py
url(r'([a-z]+)/$', 'ds', name = 'ds'),
из урлов следует:
^any/([a-z]+)/$ 
т.е. только одно Действие… а выдает более 1-го
views.py
def ds(request, dl):
  rs = T.objects.order_by('title').filter(rl__dl__exact=dl)
    return render_to_response('any/rs.html', {'rs': rs, 'dl': dl, }, 
        context_instance = RequestContext(request) )
вывод должен быть такой:
localhost/any/dl/, где меняется только dl

Действие, тут список каталога
вроде все элементарно, чего же я не вижу?

Отредактировано rss (Окт. 27, 2013 14:20:19)

Офлайн

#8 Окт. 27, 2013 17:10:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

регулярка

А какой dl у тебя получается при каком урле и какого результата ты ожидаешь?
Давай так,
отвлеченно от твоей задачи, ибо она никому не интересна, будем строить урлы,
покажи чего ты добиваешься и как ты это реализуешь.



Офлайн

#9 Ноя. 5, 2013 16:55:35

daniel
Зарегистрирован: 2012-04-05
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярка

И Всё же в project/any/urls.py должен быть

url(r'^([a-z]+)/$', 'ds', name = 'ds'),




Hosting4Django - качественный хостинг для Django-проектов

Отредактировано daniel (Ноя. 5, 2013 16:56:10)

Офлайн

#10 Ноя. 5, 2013 17:54:37

rss
Зарегистрирован: 2013-09-28
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярка

Так и есть, ошибка пропала, но почему в списке путей выдает такой вид: (в 404 странице)

^nt/ ^([-a-z]+)/$ [name='ds']
Это разве правильно?
Если можно, немного подскажите еще.


пс. Только начинаю и даже вообще программировать, поймите правильно, мне пока сложно даже понять, что пишут.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version