我正在尝试在页面加载时使用用户的个人资料详细信息填充html页面。 Django文档在TemplateView中具有此get_context_data()
方法,当我使用该方法将数据显示到html页面时,出现以下异常
TemplateDoesNotExist(', '.join(template_name_list), chain=chain)
django.template.exceptions.TemplateDoesNotExist: app/profile.html
这是我的代码:
urls.py
url(r'^profile/', views.ProfileDetailView.as_view(), name='profile'),
views.py
class ProfileDetailView(TemplateView):
template_name = "appName/profile.html"
def get_context_data(self, **kwargs):
if 'user_name' in self.request.session:
username = self.request.session['user_name']
return render_to_response('appName:profile', {'username': username})
这是在html页面中使用的方式
profile.html
<input type="text" class="form-control" placeholder="User name" id="usernameDisplay" name="usernameDisplay" readonly value="{{ username }}">
我要去哪里错了?
编辑1:
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],
},
},
]
PS:所有其他模板都工作正常,问题仅出在我试图用页面加载数据填充的那一个模板上。
修改2: 现在有一个命名问题,例外是:
TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: appName:profile
答案 0 :(得分:0)
请正确检查您的TEMPLATES_DIRS
DIRS定义了目录列表,引擎应在目录中按搜索顺序查找模板源文件。
在您的settings.py
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')],
},
]
希望有帮助
答案 1 :(得分:-1)
您的应用似乎在profile.html
文件夹中寻找app
。所以这是目录的外观。
在您的appName
文件夹中,创建一个templates
文件夹,并在其中创建带有“ appName”的文件夹。我确定此文件夹名为app
。将其更正为appName
。
[projectname]/ <- project root
├── [projectname] <- Django root
│
├── appName/
| |
| |── templates/
| ├── appName
| └── Profile.html
|
│
├── manage.py