Django: определение основного шаблона каталогом

Сначала, в вашем цикле for, добавьте вызов к validate. Затем в validate добавьте замену текста:

var elems = document.body.getElementsByTagName("*");

for (i = 0; i < elems.length; i += 1) {
   if (elems[i].innerHTML.indexOf('<script') != -1){
       console.log(elems[i]);
   } else {
       validate(elems[i]);
   }
}

function validate(element){
    if(element.indexOf('<div') == -1){
        return false;
    } else if(element.indexOf('<script') == -1){
        return false;
    } else {
        element.innerText = element.innerText.replace("t", "p"); //Add the others as well
    }
}
12
задан RexE 22 March 2009 в 17:59
поделиться

2 ответа

Может быть я наблюдаю за чем-то, но все, что Вы хотите, может быть выполнено с шаблонной системой django. Все расширяется, вызовы относительно шаблонных каталогов.

  1. Для всех файлов base.html в подкаталогах для расширения base.html просто необходимо поместить a {% extends "base.html" %} в файлы. section1/base.html был бы быть похожим на это.

    {% extends "base.html" %}

    {# ... rest of your code ...#}

  2. Теперь, чтобы заставить файлы от section1 расширять section1/base.html просто необходимо поместить {% extends "section1/base.html" %} наверху их. То же для section2, section3 и так далее.

Это просто настолько просто, но не мог бы полностью очевидный в документации.

Я надеюсь, я понял Ваш вопрос.

18
ответ дан 2 December 2019 в 06:45
поделиться

Принятый ответ будет работать, но я действительно рекомендую использовать имена переменной для отслеживания структуру раздела. Мое персональное предпочтение было бы процессором контекста. Если, например, организация раздела Вашего сайта прозрачно отражается в URL, попробуйте что-то как:

# It may be convenient to make this function live in or near your url conf.
def convert_url_path_to_folder_path(path):
    # fill in the magic here

def sub_folder_available(request):
    folder = convert_url_path_to_folder_path(request.path)
    return {'subsection': folder, 'local_base':folder+'/base.html'}

Затем в Вашем шаблоне, просто звоните

{% extends local_base %}

Существует, вероятно, дюжина других способов сделать это, но главное состоит в том, чтобы думать о предотвращении жесткого кодирования имя папки в шаблон. Это получит Вас большой пробег, тем более, что можно просто перетащить шаблон между разделами, если они, оказывается, достаточно подобны. Другая вещь Вы могли бы добавить вставку:

def sub_folder_available(request):
    folder = convert_url_path_to_folder_path(request.path)
    # Check if local base exists:
    if os.access(folder+'/base.html',os.F_OK):
        base = folder+'/base.html'
    else:
        # revert to your global base
        base = 'base.html'
    return {'subsection': folder, 'base':base}

Хорошее преимущество этой стратегии состоит, конечно в том, что можно разбудить раздел в наилегчайшем весе и работающий без любого локального основного шаблона вообще.

5
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: