Шаблон не существует на IIS + Django - PullRequest
0 голосов
/ 17 июня 2019

После процесса развертывания моего веб-сайта Django на IIS я получаю сообщение об ошибке, как показано ниже:

 TemplateDoesNotExist at /test/new_site/list/

Template-loader postmortem
Django tried loading these templates, in this order:

Using engine django:

django.template.loaders.app_directories.Loader: D:\workspace\One_Site_Project\env_one_site_37\lib\site-packages\django\contrib\admin\templates\test\new_site_list.html (Source does not exist)
django.template.loaders.app_directories.Loader: D:\workspace\One_Site_Project\env_one_site_37\lib\site-packages\django\contrib\auth\templates\test\new_site_list.html (Source does not exist)
django.template.loaders.app_directories.Loader: D:\workspace\One_Site_Project\env_one_site_37\lib\site-packages\rest_framework\templates\test\new_site_list.html (Source does not exist)

Я не знаю, почему IIS ищет файлы моих шаблонов в каталоге virtualenv.

Мой код рендеринга вида:

@method_decorator(csrf_exempt, name='dispatch')
class NewSiteListUpdate(View):
    """
    This class is used to list all the new site activity, also update an activity
    """


    def get(self, request, *args, **kwargs):
        """
        List all the activity info or a particular activity info
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        if request.user.is_staff:
            self.data = ActivityInformation.objects.all()
            self.radius = 11111

        return render(request, 'test/new_site_list.html', {'data': self.data})

Ниже приведены настройки моего шаблона в файле settings.py,

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR + '/template/'],
        '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',
            ],
            # 'builtins': [
            #     'src.huawei.templatetags.custom_tags'
            # ],
            'libraries':{
                'custom_tags': 'templatetags.custom_tags',
            },
        },
    },
]

Ниже приведена структура моего проекта,

enter image description here

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

Я использую Python 3.7 и IIS 8.5

Я трачу два дня на решение этой проблемы, ноЯ не нашел никакого решения, связанного с этим.

Любая помощь будет принята с благодарностью.Заранее спасибо.

1 Ответ

0 голосов
/ 17 июня 2019

Я думаю, что вам нужно изменить какую-то часть в вашем коде

settings.py

попытаться изменить 'DIRS': [BASE_DIR + '/ template / '] , до ' DIRS '= [os.path.join (BASE_DIR,' template '),]

views.py Путь, заданный функцией рендеринга, будет: .. / template / huawei / new_site_list.html , но в структуре вашего проекта у вас нет папки huawei .Вы должны написать: return render (запрос, 'test / new_site_list.html', {'data': self.data})

...