как вызвать представление в одном приложении к шаблону в другом приложении в Django - PullRequest
0 голосов
/ 25 июня 2018

Я новичок в Django, и я делаю проект, который имеет несколько функций.Я планирую разбить его на более мелкие.Так что я планировал сделать так, чтобы все шаблоны в main.html и функционировали в разных небольших приложениях.

--main_app
  --templates
    --main.html
--app_1
  --app1_view.py
--app_2
  --app2_view.py

Поэтому моя проблема заключается в том, как связать шаблоны main.html с другой логикой, которую я использую.написали во взглядах разных приложений.Может ли кто-нибудь указать мне на надлежащие документы или примеры.спасибо.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Django рекомендует правильный способ структурирования шаблонов.Рекомендуется следовать рекомендованному методу самой платформой.Когда вы разрабатываете программное обеспечение, существует набор «лучших практик» , которым вы должны следовать.Эти «лучшие практики» делают ваш код совершенным, легко переносимым и легко читаемым.Поэтому всегда следуйте лучшим практикам.

Теперь по вашему вопросу, лучшая практика - хранить все «шаблоны», относящиеся к конкретному приложению Django, в этой конкретной папке приложений.

Вот сценарий:

Вы создаете блог.И вы пишете в блоге как «приложение» с названием «сообщения».Теперь все ваши шаблоны, которые обрабатывают сообщения в блоге, такие как 'blog_post_details' (в котором перечислены полные сведения об одном сообщении в блоге), 'blog_posts_home' (который собирает и перечисляет все последние сообщения в блоге), 'category_blog_posts' (в котором перечислены все сообщения блога, относящиеся к определенной категории)и т. д. - все такие шаблоны, относящиеся к записи в блоге, должны создаваться в папке приложения с именем «posts».

И вот как это сделать:

Создайте папку с именем 'templates' внутри приложения с именем 'posts' Теперь внутри этой папки 'templates' создайте еще одну папку с именем'posts'

Теперь создайте все ваши HTML-файлы внутри этой подпапки с именем 'posts' (которая находится внутри папки шаблонов).

Как получить доступ:

Из любого места в вашем приложении или даже из другого приложения вы можете получить доступ к шаблонам, написав 'posts / template_name.html'

Если у вас есть шаблон с именем 'post_detail.html', сохраненный в папке 'posts'.вот как вы получаете к нему доступ.

Внутри любого приложения:

def details(request):
return render(request, 'posts/post_details.html')

Надеюсь, у вас есть идея.Всегда следуйте лучшим практикам.

0 голосов
/ 25 июня 2018

Я бы смоделировал свои статические файлы следующим образом:

--main_app
  --templates
    -- main_app
      -- main.html
      -- other.html
      -- some_other.html
  --static
    -- main_app
      --css
      --js
      --images

Если вы сохраните структуру каталогов следующим образом. Тогда вы можете легко ссылаться на ваш main.html в любом представлении как main_app / main.html

Звучит странно, но делать это таким образом рекомендуется для Django. теперь вы можете легко скопировать все приложение и вставить его в другой проект, не беспокоясь об управлении статическими файлами.

...