Django: как передать захваченные параметры в URL дополнительным параметрам?

#python #django

#python #django

Вопрос:

Я помню, как где-то читал, что захваченные параметры в URL могут быть переданы дополнительным параметрам. Например:

 url(r'^products/(?P<object_id>d )/$', 
    'someview',
    {parameter: <object_id>},
    name='someview'),
  

В этом случае я хочу передать object_id в дополнительные параметры. Могу ли я это сделать? Я просто не могу вспомнить, где я читал об этом трюке. Или, может быть, я плохо помню.

Ответ №1:

Вот пример:

 url(
    (r'^(?P<base62_id>w )$', 'shortener.views.follow'),
}
  


Представление может получить к нему доступ как:

 def follow(request, base62_id):
  

Комментарии:

1. Я это знаю. Но это не мой вопрос.

Ответ №2:

Дополнительные параметры — это просто extra. Вам не нужно «передавать» параметр в URL, потому что это делается по умолчанию. Дополнительные параметры предназначены для значений, которые всегда должны передаваться в представление, независимо от того, что исходит из самого URL.

Комментарии:

1. Тогда, возможно, я ошибаюсь. Я думал, что прочитал трюк с передачей захваченного параметра url в дополнительные параметры для форматирования строк чего-либо.

2. Я снова просматриваю документы django и обнаруживаю, что функция redirect_to может захватывать параметры в URL и передавать их в url при условии, что url содержит некоторую строку формата: docs.djangoproject.com/en/dev/ref/generic-views /… . Но я чувствую, что это бесполезно, поскольку я не буду жестко кодировать URL в urls.py. Я думаю, что это более полезно в 1.3, поскольку начиная с этой версии есть reverse_lazy (я все еще использую 1.2).