2009-05-14 9 views
4

ウィジェットのコードでは、にアクセスする必要があります。HTMLレンダリングされた要素のIDです。私はレンダリングされた文字列にregexpを実行することができ、IDを取得することができますが、私は簡単な方法でなければならないと信じています。 self.attrs['id']が動作しないことを除いてDjangoウィジェットHTML id

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 

だが、これは私が持っているウィジェットであると仮定しましょう。

ここでIDを取得する簡単な方法はありますか?

ありがとうございます!

答えて

4

idの属性はattrs引数にあり、render()に渡されます。

def render(self, name, value, attrs=None): 
    # ... 
    if attrs and 'id' in attrs: 
    # Use attrs['id'] 
+0

Pythonでレンダリングするのではなく、Djangoテンプレート言語でそれを見つける方法はありますか?いいえ、それを使用しようとする前に、その存在を確認することをお勧めします。 – dfrankow

+0

@dfrankow:テンプレートで{{field.auto_id}}を使用できます – Arjan

関連する問題