Шаблон и версия Django - PullRequest
0 голосов
/ 30 июня 2018

Я искал в сети последнюю версию Django, и это 2.0.6 в официальной документации Django. Но версии, которые приведены на официальной странице, это просто 2.0, 2.1, 1.9 и т. Д. Так что мне просто интересно, есть ли документация для 2.0 для всех версий, таких как 2.0.5, 2.0.6, 2.0.7 и т. Д. Потому что есть нет документации для версии 2.0.6. Но опять-таки версия 2.0 отличается, и ее можно установить с помощью pip.

Ранее я использовал Django 2.0.6, и у меня была проблема с шаблоном. Я сначала начал свой проект с именем web, а затем создал приложение под названием music. Внутри я создал каталог шаблонов, а внутри - еще одну музыкальную папку и поместил туда свой файл index.html. так в целом путь, как это Web / музыка / шаблон / музыка / index.html. Теперь я использовал рендер из django.shortcuts.

Я ссылался на файл index.html как music / index.html в файле view.py в музыкальном каталоге. Но он не может найти файл и просто показывает ошибку.

Я думал, что это может быть проблема с версией.

Ответы [ 2 ]

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

Структура вашей папки должна быть такой:

music/                  <-- higher level folder
 |-- myproject/             <-- django project folder
 |    |-- __init__.py
 |    |-- settings.py
 |    |-- urls.py
 |    |-- wsgi.py
 |-- templates         <-- Templates folder
 |    |-- music
 |    |    |-- index.html
 |-- static            <-- Static folder
 |    |-- css
 |    |-- js
 |    |-- images
 |    +-- manage.py
 +-- venv/                  <-- virtual environment folder

Ваша папка проекта, папка приложения и папка шаблона должны быть вместе с manage.py .

Вам также нужно добавить это в settings.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates")],       <-- add this line
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

views.py

def index(request):
     return render(request, "music/index.html", )    <-- Dont forget this here music is your folder's name
0 голосов

Вы добавили свой каталог шаблонов в файл settings?

Как указано в документации :

Допустим, вы пытаетесь переопределить шаблоны для стороннего приложения под названием blog, которое предоставляет шаблоны blog / post.html и blog / list.html. Соответствующие настройки для вашего проекта будут выглядеть так:

import os 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 INSTALLED_APPS = [ ..., 'blog', ..., ] 
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, ... }, ] 

Настройка TEMPLATES и BASE_DIR уже будут существовать, если вы создали свой проект с использованием шаблона проекта по умолчанию. Параметр, который необходимо изменить, - DIRS.

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

templates/ 
    blog/ 
        list.html 
        post.html 

Загрузчик шаблонов сначала ищет шаблоны в каталоге DIRS. Когда представления в приложении блога запрашивают blog / post.html и blog / list.htmltemplates, загрузчик вернет только что созданные вами файлы.


Итак, чтобы добавить собственную папку шаблонов, вам нужно изменить настройку DIRS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...