Добавить пользовательские JS в форму Django - PullRequest
2 голосов
/ 03 августа 2010

Я знаю, как это сделать:

class CalendarWidget(forms.TextInput):
    class Media:
        js = ('animations.js', 'actions.js')

Но тогда я получаю что-то вроде: "<script type="text/javascript" src="http://media.example.com/animations.js"> "

То, что я хочу, выглядит примерно так:

<script>callMYFunction(sdf); </script>

Делая что-то вроде этого:

class CalendarWidget(forms.TextInput):
    class Media:
        js = (callMYFunction(sdf),)

Но я не могу заставить это работать ... Есть идеи?

1 Ответ

0 голосов
/ 03 августа 2010

Вам придется вручную добавить это к методу render вашего виджета.

class CalendarWidget(forms.TextInput):
    def render(self, name, value, attrs=None):
        out = super(CalendarWidget,self).render(name, value, attrs=attrs)
        return out + '<script type="text/javascript">callMyFunction(sdf)</script>'

    class Media:
        js = ('animations.js', 'actions.js') # callMyFunction should be defined in one of these
...