Проверьте, есть ли у Dict шаблона Cheetah ключ

1

Я пытаюсь создать базовый шаблон для приложения, и одной из целей было бы удаление ненужных js/css со страниц, поэтому я хочу что-то сделать в шаблоне гепарда, например

#if $dict.has_key('datepicker'):
  <link rel="stylesheet" href="$datepicker" type="text/css" />
#end if

Я думаю, что это также помогло бы с ошибками, такими как namemap не имеет ключа 'datepicker'

моя текущая ошибка, которую я получаю с помощью WSGIHandler,

TypeError: descriptor 'has_key' requires a 'dict' object but received a 'str'

Мне кажется, что это связано с тем, что я возвращаю обработчик как str, но не должен обрабатывать шаблон до того, как он попадет на str

t = Template(file=WORKSPACE_PATH+"/tmpl/posts.html", searchList=[tmpldict])
self.response_body = str(t).encode('utf8')
return str(t)
Теги:
templates
cheetah

1 ответ

1
Лучший ответ

Исправлена ​​ошибка:

dict.has_key('datepicker')

"dict" - это класс, поэтому он ожидает, что первый аргумент "dict.has_key" будет экземпляром "dict".

Вы передаете строку вместо объекта dict.

В принципе, "d.has_key (k)" эквивалентно "dict.has_key (d, k)", и у вас есть последнее.

  • 0
    Я просто запутался, как ссылаться на диктовку внутри шаблона
  • 0
    Изучив документацию, я бы сказал, попробуйте #try ... # кроме KeyError
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню