Я получаю путь шаблонного использования
paymenthtml = os.path.join(os.path.dirname(__file__), 'template\\payment.html')
и вызов его в другом приложении, где paymenthtml копируется в payment_template
return render_to_response(self.payment_template, self.context, RequestContext(self.request))
Но я получаю ошибку
TemplateDoesNotExist в/test-payment-url/
E:\testapp\template\payment.html
Почему ошибка прибывает?
Редактирование: Я внес следующее изменение в settings.py, и это в состоянии найти шаблон, но я не могу hardcode путь в производстве, какой-либо подсказке?
TEMPLATE_DIRS = ("E:/testapp" )
Похоже, что Django будет загружать шаблоны только в том случае, если они находятся в каталоге, который вы определили в TEMPLATE_DIRS
, даже если они существуют в другом месте.
Попробуйте это в настройках.py:
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
# Other settings...
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, "templates"),
)
а затем в виде:
return render_to_response("payment.html", self.context, RequestContext(self.request))
# or
return render_to_response("subdir/payment.html", self.context, RequestContext(self.request))
Это выведет либо E:\path\to\project\templates\payment.html
, либо E:\path\to\project\templates\subdir\payment.html
. Дело в том, что они находятся внутри каталога, который мы указали в файле settings.py.
У меня нет здесь джанго, но я думаю, что вам следует использовать / вместо \\ ?
python помогает вам с косая черта в операционных системах
.Вы уверены, что этот файл существует в вашей системе?
E:\testapp\template\payment.html
Это сообщение об ошибке довольно простое и видно, когда Django пытается найти ваш шаблонный файл по пути в файловой системе и не видит его.
Если этот файл действительно существует, следующим шагом будет проверка разрешений на этот файл и каталоги, чтобы убедиться, что это не проблема с разрешениями. Если ваш E:
диск является отображенным сетевым диском некоторого сетевого ресурса, то вам также нужно проверить разрешения на общий доступ.