Javascript INDEX_SIZE_ERR: Ошибка DOM Exception 1 для диапазонов

Используя следующий код, я получаю ошибку INDEX_SIZE_ERR: DOM Exception 1 в строке thisRange.setStart. Код предназначен для просмотра всей страницы, поиска экземпляров searchString и добавления ссылки перед этой строкой поиска. Например, если он находит 5 экземпляров строки, прямо сейчас он добавит ссылку перед первым, но затем ошибка на втором и остановится, оставив четыре слова без ссылки. def my_insert (context): # настраиваем другие переменные для ...

В настоящее время

у меня есть тег включения, который закодирован примерно так:

@register.inclusion_tag('forms/my_insert.html', takes_context=True)
def my_insert(context):
    # set up some other variables for the context
    return context

В моем шаблоне я включаю его, вставляя {% my_insert%}

Запрос новой функции

Теперь мы хотим протестировать новый макет - это просто изменение шаблона, а не изменение переменных контекста. Я выполняю это, вызывая первый

@register.inclusion_tag('forms/my_new_insert.html', takes_context=True)
def my_new_insert(context):
    return my_insert(context)

. Чтобы использовать новый шаблон, я должен использовать:

{% ifequal some_var 0 %}
    {% my_insert %}
{% endifequal %}
{% ifnotequal some_var 0 %}
    {% my_new_insert %}
{% endifnotequal %}

Вопрос

Есть ли способ выбрать шаблон в функции, которая устанавливает контекст тега шаблона?

Я представляю это может быть что-то вроде:

@register.inclusion_tag('forms/my_insert.html', takes_context=True)
def my_insert(context):
    # set up some other variables for the context
    if context['some_var'] == 0:
        context['template'] = 'forms/my_insert.html'
    else:
        context['template'] = 'forms/my_new_insert.html'
    return context
9
задан Doug Harris 14 October 2010 в 21:22
поделиться