Теги шаблона djng_rmi в Django-Angular не расширяются

Я пытаюсь использовать djangoRMIProvider из Django-Angular, чтобы дать моему угловому приложению, доступному поверх django, доступ к некоторым методам django.

Фрагмент, в который я скопировал (и настроил my_app имя), и добавил console.log к это:

{­% load djangular_tags %­}
…
<script type="text/javascript">
console.log("djangoRMIProvider: "+djangoRMIProvider);
my_app.config(function(djangoRMIProvider) {
    djangoRMIProvider
        .configure(
            {­% djng_current_rmi %­} <!--errors here -->
         );
});
</script>

Оказывается, что ни {­% djng_current_rmi %­} ни {­% djng_all_rmi %­} расширить до того, что они должны.

Я дошел до копирования файла Django-Angular djangular_tags.py под:

my_app
     ↳ templatetags
         ↳ djangular_tags.py

И я уверен, что оба my_app а также django_angular (Мне пришлось переименовать приложение Django-Angular djangular в django_angular так как есть еще один пакет, Djangular, с именем приложения djangular - попробуйте сказать, что в десять раз быстрее) в 'INSTALLED_APPS'.

Я даже использовал этот грязный хак для принудительной установки тегов во встроенные функции, но я либо сделал это неправильно, либо он не работает django.templatetags.my_app.templatetags.djangular_tags, что не правильно, или другие ошибки, если я поставлю что-нибудь, кроме my_app.templatetags.djangular_tags в этом вызове функции)

1 ответ

Решение

{} для объявления функции запутайте django, когда он ищет теги для внедрения. Перемещая его за пределы объявления функции, оно должно работать нормально.

{% load djangular_tags %}
…
<script type="text/javascript">
    var tags = {% djng_current_rmi %} 
    my_app.config(function(djangoRMIProvider) {
        djangoRMIProvider
            .configure(
                 tags
             );
    });
</script>
Другие вопросы по тегам