После ссылки на элемент в WebOb.params (UnicodeMultiDict) элемент выталкивается с конца - PullRequest
0 голосов
/ 24 мая 2011

Когда я ссылаюсь на параметр params запроса WebOb, элемент неожиданно выталкивается с конца. Это или это сводится к одному элементу. Ссылочный элемент не тот, который был сбит.

if req.str_params.has_key('method'):
   req.method = req.str_params.getone('method')

Перед включением этой строки:

DEBUG:root:NestedMultiDict([('method', 'put'), ('name', 'some_name')])

после

DEBUG:root:NestedMultiDict([('method', 'put')])

Я в растерянности.

1 Ответ

2 голосов
/ 04 августа 2011

Это потому, что вы устанавливаете req.method. Возможно, name=some_name находится в теле запроса, и до тех пор, пока req.method == 'POST', вы получите этот параметр обратно. В тот момент, когда вы меняете метод на PUT, вы не позволяете WebOb анализировать тело запроса (предполагается, что тела запроса будут объектами, а не входными данными формы HTML). Это вычисляется, когда вы получаете атрибут req.str_params, поэтому, сохраняя ссылку на параметры, вы избегаете проверки req.method.

...