Заполнение полей формы с помощью TAL/Chameleon

Я использую Chameleon в Python для рендеринга своих шаблонов.

Допустим, я хочу заполнить поле формы, используя данные POST/GET:

<input type="text" name="foo" value="${request.params['foo']}" />

Проблема в том, что если в request.params нет ключа «foo», я получаю сообщение об ошибке. Какой самый простой способ сделать значение = "" пустым, если ключ не существует, вместо того, чтобы выдавать ошибку?


person Theron Luhn    schedule 17.04.2012    source источник


Ответы (2)


request.params — это объект dict (или похожий на dict), поэтому вы можете просто использовать .get() со значением по умолчанию:

<input type="text" name="foo" value="${request.params.get('foo', '')}" />
person Martijn Pieters    schedule 28.07.2012

В итоге я расширил запрос простой функцией:

def get_param(self, name):
    if name in self.params:
        return self.params[name]
    return None
person Theron Luhn    schedule 20.04.2012