Django объединяет два шаблона из разных приложений - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть два приложения со следующей структурой

project->
    main app->
       templates->
           dashboard.html
    my app->
       templates->
           mydashboard.html

Я хочу включить mydashboard в dashboard, это возможно с помощью тега include template.но моя проблема возникает, когда мне нужно передать некоторые параметры в mydashboard, скажем, они называются param1 и param2, эти параметры - переменные, которые я должен загрузить из my app приложения.один из возможных способов - заполнить эти параметры в виде панели инструментов в mainapp и передать их с помощью тега include в mydashboard.html, как показано ниже

def user_dashboard(request):
  ...-->here I have to get data from my app (this view is in main app and I do not want to make main app be dependent to my app
    return render(request, 'dashboard.html', {'param1': 0, 'param2': 34})

, затем в dashboard.html добавить эту часть

{% is_app_installed "myapp" as is_myapp_installed %}
           {% if is_myapp_installed %}
                {% include "myappdashboard.html" with param1=param1 param2=param2 %}
           {% endif %}

Кажется, вышеописанный метод работает, но основная проблема в том, что использование этого метода mainapp зависит от myapp, и я не хочу, чтобы это произошло.Есть ли другой способ загрузить эти param1 и param2 внутри myapp?спасибо

1 Ответ

0 голосов
/ 17 сентября 2018

Я не вижу деталей шаблонов, но если вы хотите разделить два шаблона, я предлагаю вам переосмыслить, как вы организуете логику шаблонов. Попробуйте изменить логику, добавив base_dashboard.html в общий каталог шаблонов с фрагментами и базовыми шаблонами для совместного использования приложениями.

Тогда myappdashboard.html и dashboard.html могут расширить его на {% extend base_dashboard.html %}.

...