HTML-код виджета Django - PullRequest
       7

HTML-код виджета Django

4 голосов
/ 14 мая 2009

В коде виджета мне нужно получить доступ к HTML id отображаемого элемента. Я знаю, что могу запустить regexp для отображаемой строки и получить идентификатор , но я считаю, что должен быть легкий путь.

Давайте предположим, что у меня есть виджет:

class TextInputWithHint(TextInput):
    ...
    def render(self, name, value, attrs):

        res = super(TextInputWithHint, self).render(name, value, attrs = attrs)
        res += mark_safe(u'<script type="text/javascript">alert(%s)</script>' \
        % self.attrs['id'])
        return res

За исключением того, что self.attrs['id'] не работает.

Есть ли простой способ получить ID здесь?

Спасибо!

1 Ответ

4 голосов
/ 14 мая 2009

Для вашего случая использования вы можете найти атрибут id в аргументе attrs, который передается в render(). Рекомендуется проверить его существование, прежде чем пытаться его использовать:

def render(self, name, value, attrs=None):
  # ...
  if attrs and 'id' in attrs:
    # Use attrs['id']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...