Можно ли сделать dojo.require () в виджете Django? - PullRequest
0 голосов
/ 06 августа 2011

Django позволяет пользователям указывать пользовательские виджеты, например, так ...

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

Как показывает пример на https://docs.djangoproject.com/en/1.3/topics/forms/media/#media-as-a-static-definition, сгенерированный носитель выглядит как ...

<script type="text/javascript" src="http://media.example.com/animations.js"></script>
<script type="text/javascript" src="http://media.example.com/actions.js"></script>

Проблема в том, что я использую Dojo, и требование для моего виджета:

<script type="text/javascript">
   dojo.require("dijit.form.TextBox");    
</script>

Как я могу сгенерировать этот тег сценария с помощью виджета поля формы Django? Прямо сейчас это кажется невозможным ... это означает, что я не могу использовать приятную настройку формы Django или мне нужно переключить мою среду Javascript. Пожалуйста, помогите мне сделать ни то, ни другое!

1 Ответ

0 голосов
/ 06 августа 2011

Существует два способа: либо создать файл .js, который содержит только требование, затем добавить его в список js: js = [ …, 'dojo_require_TextBox.js' ], либо добавить виджет к тегу <script /> с помощью переопределения рендера в вашем виджет:

def render(self, *args):
    result = super(MyWidget, self).render(*args)
    return "<script>dojo.require(…)</script>" + result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...