使用页面加载数据填充模板

时间:2019-02-20 05:51:00

标签: django django-templates django-views

我正在尝试在页面加载时使用用户的个人资料详细信息填充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

2 个答案:

答案 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
相关问题