URL в шаблонах через reverse » комментарииhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/2008-08-19T13:45:11-07:00Иван Сагалаев о программировании и веб-разработкеhttp://softwaremaniacs.org/media/sm_org/style/photo.jpgsimple_tag и произвольное количество аргументов на "URL в шаблонах через reverse"
2008-08-19T13:45:11-07:00simple_tag и произвольное количество аргументовhttp://softwaremaniacs.org/forum/django/3252/https://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-30538[...] Во многом помогла уже довольно старая статья http://softwaremaniacs.org/blog/2006/08/04/url-reverse/ [...]
<p>[...] Во многом помогла уже довольно старая статья <a href="http://softwaremaniacs.org/blog/2006/08/04/url-reverse/">http://softwaremaniacs.org/blog/2006/08/04/url-reverse/</a> [...]Alexander Solovyov на "URL в шаблонах через reverse"
2007-04-10T07:36:35-07:00Alexander Solovyovhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-7856Тег {% url your_view %} уже в джанге svn. Наслаждайтесь :) Ну и боян! :]
<blockquote>
<p>Тег {% url your_view %} уже в джанге svn. Наслаждайтесь :)</p>
</blockquote>
<p>Ну и боян! :]Nick на "URL в шаблонах через reverse"
2007-04-10T06:33:11-07:00Nickhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-7854Тег {% url your_view %} уже в джанге svn. Наслаждайтесь :)
<p>Тег {% url your_view %} уже в джанге svn. Наслаждайтесь :)Иван Сагалаев на "URL в шаблонах через reverse"
2007-04-09T07:04:59-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-7835Замеров не знаю... Но по идее, это должны быть сущие копейки.
<p>Замеров не знаю... Но по идее, это должны быть сущие копейки.Alexander Solovyov на "URL в шаблонах через reverse"
2007-04-09T04:19:18-07:00Alexander Solovyovhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-7833Ааа! Вот это я дал маху! ;)) Действительно, в урлконфе админка осталась. :D LOL! Так а на тему скорости, никаких испытаний не было? ;)
<p>Ааа! Вот это я дал маху! ;))</p>
<p>Действительно, в урлконфе админка осталась. :D LOL!</p>
<p>Так а на тему скорости, никаких испытаний не было? ;)Иван Сагалаев на "URL в шаблонах через reverse"
2007-04-09T03:01:04-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-7832Ему, вообще-то, и не нужна админка. Я подозреваю, что это эффект того, что она где-то в urlconf'ах присутствует, и в процессе поиска reverse через этот паттерн проходит и пытается ее грузить. У меня тоже так один раз было: вычистил пару правил от несуществующих приложений :-)
<p>Ему, вообще-то, и не нужна админка. Я подозреваю, что это эффект того, что она где-то в urlconf'ах присутствует, и в процессе поиска reverse через этот паттерн проходит и пытается ее грузить. У меня тоже так один раз было: вычистил пару правил от несуществующих приложений :-)Alexander Solovyov на "URL в шаблонах через reverse"
2007-04-09T02:54:32-07:00Alexander Solovyovhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-7831Есть вопросик на тему работы реверсинга - а почему он требует contrib.admin? Просто тут такое дело, что хочу обойтись без contrib.sessions, ну и подумываю, что явное его отключение - безопаснее, чем просто слежение за собой. ;) Вот и думаю, для чего ему админка, и как бы это перебороть...
<p>Есть вопросик на тему работы реверсинга - а почему он требует contrib.admin? Просто тут такое дело, что хочу обойтись без contrib.sessions, ну и подумываю, что явное его отключение - безопаснее, чем просто слежение за собой. ;)</p>
<p>Вот и думаю, для чего ему админка, и как бы это перебороть...Иван Сагалаев на "URL в шаблонах через reverse"
2007-03-12T00:07:18-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-6291Generic'ов? Пока никак, к сожалению. У меня есть пара мыслей на этот счет, но пока руки не доходят их сформулировать и в патч превратить. В качестве кривого workaround'а могу предложить завернуть generic'и в свои wrapper'ы буквально так: def someobject_list(*args, **kwargs): return object_list(*args, **kwargs) ... и ссылаться на них, потому что...
<p>Generic'ов? Пока никак, к сожалению. У меня есть пара мыслей на этот счет, но пока руки не доходят их сформулировать и в патч превратить. В качестве кривого workaround'а могу предложить завернуть generic'и в свои wrapper'ы буквально так:</p>
<pre><code>def someobject_list(*args, **kwargs):
return object_list(*args, **kwargs)
</code></pre>
<p>... и ссылаться на них, потому что у них уже будут разные имена.hidded на "URL в шаблонах через reverse"
2007-03-11T23:57:11-07:00hiddedhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-6290Хм... а как можно использовать {% url ... %} при использовании стандартных views.
<p>Хм... а как можно использовать {% url ... %} при использовании стандартных views.Pythy &raquo; Блог Архив &raquo; Что мне не нравится в Django на "URL в шаблонах через reverse"
2007-01-23T07:49:11-08:00Pythy » Блог Архив » Что мне не нравится в Djangohttp://gorod-omsk.ru/blog/pythy/2007/01/23/the-things-i-dislike-about-django/https://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-4452[...] и обратный резолвинг URL в шаблонах есть. И приведут пример. Да, есть способ, однако в стандартной библиотеке [...]
<p>[...] и обратный резолвинг URL в шаблонах есть. И приведут пример. Да, есть способ, однако в стандартной библиотеке [...]adarovsky на "URL в шаблонах через reverse"
2006-12-26T08:42:55-08:00adarovskyhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-3808Правда, в Django’вском trac’е довольно давно уже лежит сильно переработанная версия (моя же), которая тоже позволяет именные аргументы. Она слегка другая, конечно… слона-то я и не заметил, и, как всегда, со своим велосипедом :)
<blockquote>
<p>Правда, в Django’вском trac’е довольно давно уже лежит сильно переработанная версия (моя же), которая тоже позволяет именные аргументы. Она слегка другая, конечно…</p>
</blockquote>
<p>слона-то я и не заметил, и, как всегда, со своим велосипедом :)Иван Сагалаев на "URL в шаблонах через reverse"
2006-12-26T05:54:49-08:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-3806Спасибо. Правда, в Django'вском trac'е довольно давно уже лежит сильно переработанная версия (моя же), которая тоже позволяет именные аргументы. Она слегка другая, конечно...
<p>Спасибо.</p>
<p>Правда, в Django'вском trac'е довольно давно уже лежит <a href="http://code.djangoproject.com/ticket/2606">сильно переработанная версия</a> (моя же), которая тоже позволяет именные аргументы. Она слегка другая, конечно...adarovsky на "URL в шаблонах через reverse"
2006-12-26T05:48:39-08:00adarovskyhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-3805Вот версия, которая позволяет использовать переменные в регексах: from django import template from django.conf import settings import re register = template.Library() class URLNode(template.Node): def __init__(self, view_name, args, kwargs): self.view_name = view_name self.args = args self.kwargs = kwargs def render(self, context): from django.core.urlresolvers import reverse, NoReverseMatch args = [arg.resolve(context) for arg...
<p>Вот версия, которая позволяет использовать переменные в регексах:</p>
<pre><code>from django import template
from django.conf import settings
import re
register = template.Library()
class URLNode(template.Node):
def __init__(self, view_name, args, kwargs):
self.view_name = view_name
self.args = args
self.kwargs = kwargs
def render(self, context):
from django.core.urlresolvers import reverse, NoReverseMatch
args = [arg.resolve(context) for arg in self.args]
kwargs = dict( map( lambda (k, v): (k, v.resolve(context)), self.kwargs.iteritems() ) )
project_name = settings.SETTINGS_MODULE.split('.')[0]
try:
return reverse(self.view_name, args=args, kwargs=kwargs)
except NoReverseMatch:
return ''
@register.tag
def url(parser, token):
bits = token.contents.split()
args = []
kwargs = {}
if len(bits) > 2:
rEq = re.compile(r'(^\w+)=(.*)')
for arg in bits[2].split(','):
m = rEq.match(arg)
if m:
kwargs[m.group(1)] = parser.compile_filter(m.group(2))
else:
args += parser.compile_filter(arg)
return URLNode(bits[1], args, kwargs)
from django import template
from django.conf import settings
import re
register = template.Library()
class URLNode(template.Node):
def __init__(self, view_name, args, kwargs):
self.view_name = view_name
self.args = args
self.kwargs = kwargs
def render(self, context):
from django.core.urlresolvers import reverse, NoReverseMatch
args = [arg.resolve(context) for arg in self.args]
kwargs = dict( map( lambda (k, v): (k, v.resolve(context)), self.kwargs.iteritems() ) )
project_name = settings.SETTINGS_MODULE.split('.')[0]
try:
return reverse(self.view_name, args=args, kwargs=kwargs)
except NoReverseMatch:
return ''
@register.tag
def url(parser, token):
bits = token.contents.split()
args = []
kwargs = {}
if len(bits) > 2:
rEq = re.compile(r'(^\w+)=(.*)')
for arg in bits[2].split(','):
m = rEq.match(arg)
if m:
kwargs[m.group(1)] = parser.compile_filter(m.group(2))
else:
args += parser.compile_filter(arg)
return URLNode(bits[1], args, kwargs)
</code></pre>Иван Сагалаев на "URL в шаблонах через reverse"
2006-09-06T10:37:29-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-3048Стандартный совет: Django обновить до самого нового. Если не поможет - с подробным traceback'ом в форуме можно разобраться: http://softwaremaniacs.org/forum/viewforum.php?id=5
<p>Стандартный совет: Django обновить до самого нового. Если не поможет - с подробным traceback'ом в форуме можно разобраться: <a href="http://softwaremaniacs.org/forum/viewforum.php?id=5">http://softwaremaniacs.org/forum/viewforum.php?id=5</a>Alexander Solovyov на "URL в шаблонах через reverse"
2006-09-05T12:15:32-07:00Alexander Solovyovhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-3047Почему-то абсолютно не получается заиспользовать. :/ Пишет: Caught an exception while rendering: Tried reset in module forum.views. Error was: 'module' object has no attribute 'reset' Что бы это могло быть? :|
<p>Почему-то абсолютно не получается заиспользовать. :/</p>
<p>Пишет:</p>
<p>Caught an exception while rendering: Tried reset in module forum.views. Error was: 'module' object has no attribute 'reset'</p>
<p>Что бы это могло быть? :|xavier на "URL в шаблонах через reverse"
2006-09-02T12:11:35-07:00xavierhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-3025Hello there ! Wery useful tip, even if I could'nt undrstand the body of your post, your piece of code helped me a lot :) Kind regards xav
<p>Hello there !</p>
<p>Wery useful tip, even if I could'nt undrstand the body of your post, your piece of code helped me a lot :)</p>
<p>Kind regards</p>
<p>xavИван Сагалаев на "URL в шаблонах через reverse"
2006-08-06T06:01:58-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-2753Да, эта штука сделана с полным осознанием того, что она математически все случаи не покроет, но она работает в большинстве реальных ситуаций.
<p>Да, эта штука сделана с полным осознанием того, что она математически все случаи не покроет, но она работает в большинстве реальных ситуаций.Давид Мзареулян на "URL в шаблонах через reverse"
2006-08-06T03:22:06-07:00Давид Мзареулянhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-2752Прошу прощения, со звёздочкой я, конечно, ерунду написал, там однозначный реверс вообще невозможен. Но вообще, регекспами ведь можно очень хитрые вещи задавать. Справится? Или подразумевается, что «правильные» урлы должны задаваться простым образом, как последовательность отдельных блоков-парамеров?
<p>Прошу прощения, со звёздочкой я, конечно, ерунду написал, там однозначный реверс вообще невозможен.</p>
<p>Но вообще, регекспами ведь можно очень хитрые вещи задавать. Справится? Или подразумевается, что «правильные» урлы должны задаваться простым образом, как последовательность отдельных блоков-парамеров?Давид Мзареулян на "URL в шаблонах через reverse"
2006-08-06T02:55:41-07:00Давид Мзареулянhttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-2750Вопрос такой. В случае с (r'^client/(\d+)/$', 'project_name.app_name.views.client') всё понятно и просто, параметр просто подставляется вместо скобки. А как быть с чем-нибудь вроде r'^abc/de*f/(\d+)/$'? Сумеет ли этот модуль правильно отработать звёздочку? Или, скажем, вложенные скобки?
<p>Вопрос такой. В случае с <code>(r'^client/(\d+)/$', 'project_name.app_name.views.client')</code> всё понятно и просто, параметр просто подставляется вместо скобки. А как быть с чем-нибудь вроде <code>r'^abc/de*f/(\d+)/$'</code>? Сумеет ли этот модуль правильно отработать звёздочку? Или, скажем, вложенные скобки?ilya на "URL в шаблонах через reverse"
2006-08-05T11:05:33-07:00ilyahttps://softwaremaniacs.org/blog/2006/08/04/url-reverse/#comment-2747огромное спасибо за обзор этой фичи! у меня нет времени постоянно читать все обновления а это как раз то чего очень давно хотелось! попробую реализовать у себя и может чего интересного в комментах напишу
<p>огромное спасибо за обзор этой фичи!<br>
у меня нет времени постоянно читать все обновления<br>
а это как раз то чего очень давно хотелось!<br>
попробую реализовать у себя и может чего интересного в комментах напишу