Один вид с динамическим шаблоном - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть модули, которые при включении / отключении требуют другого расположения таблиц и фреймов на веб-странице внешнего интерфейса. Для этого я установил функцию, которая проверяет, какие модули включены / отключены, и назначил номер каждому «набору», и будут созданы отдельные шаблоны для каждого «set1.html», «set2.html», «set3. html "и т. д. ...

Я бы хотел использовать одно единственное представление, в котором я могу передать заданный номер из созданной мной функции, но не могу понять, как.

def homeset(request):
   return render(request, 'app/set1.html', {})

В поисках способа сделать "1" возвращением функции, которую я создал, чтобы определить, какой набор # загружать в качестве шаблона, и предпочел бы не создавать представление для каждого необходимого шаблона.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Похоже, Скотт Скилс ответил на ваш вопрос, но альтернативным способом является использование одного базового шаблона и "include" templatetag .

Вы можете передать номер набора в шаблон и использовать тег шаблона "if", чтобы включить содержимое соответствующих шаблонов для каждого номера набора.

{% if set_num == 1 %}
    {% include "foo/bar.html" %}
{% elif set_num == 2 %}
    {% include "foo/two.html" %}
{% endif %}
0 голосов
/ 02 ноября 2018

Просто сделав попытку, у вас есть проблемы с настройкой имени шаблона перед рендерингом?

def homeset(request):
    # define 'my_set'
    # define num
    ...
    my_template_name = None         
    if num in my_set:
        my_template_name = 'app/set{}.html'.format(num)
    return render(request, my_template_name)
...