我有一个简单的CRUD应用程序,当我将其测试为项目中的唯一应用程序时,它将呈现其所有模板。 它向我显示了一个空白模板,但是对于相同的模板,当我将其添加到具有登录/注销应用程序的项目中时(以便同时存在两个应用程序) 我确定它是我忽略的东西,但我无法解决。帮助!
全部与模板文件夹中的模板一起使用,并且是项目中的默认应用程序。我使用的是标准settings.py,下面是模板部分。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates',],
'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',
],
},
},
]
网址也很简单
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^conform/', include('conform.urls')),
]
模板位于apps / templates文件夹中
因此,我能够调用这些页面/ conform / conform / view_name / 而且效果很好。
但是,如果我创建一个新项目并添加一个登录/注销应用程序以及合格应用程序。在登录应用程序中,我为通过身份验证的用户提供了一个导航栏,该导航栏具有到conform应用程序中模板页面的菜单链接。
当我单击它时,我得到一个空白页!地址显示该视图的正确URL,但不显示任何内容。我更改了其中一个模板中的文本,以确认该应用程序没有找到它,而且似乎是这种情况。
“多应用程序settings.py模板”部分:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR,],
'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',
],
},
},
]
在这种情况下,我在项目文件夹下有一个模板文件夹,其中两个文件夹分别以应用程序命名。
我尝试过移动它们,甚至将它们放回apps文件夹中,但它仍然显示空白屏幕。
这是项目文件夹的树:
── conform
│ ├── migrations
│ │ └── __pycache__
│ ├── __pycache__
│ └── templates
│ └── conform
├── key
│ ├── migrations
│ │ └── __pycache__
│ └── __pycache__
├── media
│ └── profile_pics
├── static
│ └── images
├── templates
│ └── key
└── therapy
└── __pycache__
conform和key是治疗项目中的两个应用。
其他信息!
我可以确认该应用正在找到模板。因此,这不是配置问题。当我重命名模板文件时;从a.html到b.html,django抱怨找不到它。
所以这是一个HTTP问题。这是我正在使用的索引页。
{% extends "key/base.html" %}
{% load staticfiles %}
{% block body_block %}
<nav class="navbar navbar-default navbar-static-top">
<div class="container">
<ul class="nav navbar-nav">
{% if user.is_authenticated %}
<li><a class="navbar-brand" href="{% url 'conform:conform_staff_create' %}">Add Staff</a></li>
<li><a class="navbar-link" href="{% url 'conform:conform_staff_list' %}">List Staff</a></li>
<li><a class="navbar-link" href="{% url 'admin:index' %}">Admin</a></li>
{% else %}
<li><a class="navbar-link" href="{% url 'key:user_login' %}">Help</a></li>
{% endif %}
</ul>
</div>
</nav>
<div class="container">
<div class="alert alert-info">
{% if user.is_authenticated %}
<h2>Hello {{ user.username }}</h2>
<h2>Welcome to !</h2>
<strong>Success!</strong>
{% else %}
<h3>Login with a valid <strong>username</strong> and <strong>password</strong> to begin.</h3>
{% endif %}
</div>
</div>
{% endblock %}
当单击“列表人员”的链接时,应该显示以下模板,但它显示为空白!谁能解释为什么?
{% extends "keys/base.html" %}
{% load static %}
{% block content %}
<p><a class="btn btn-default" href="{% url 'conform_staff_list' %}">Staff Listing</a></p>
<table class="table">
<tr>
<td>ID</td><td>Link</td>
<td>name</td>
<td>address</td>
<td>city</td>
<td>postcode</td>
<td>county</td>
<td>country</td>
<td>telephone</td>
<td>email</td>
</tr>
{% for object in object_list %}
<tr>
<td>{{object.pk}}</td>
<td><a href="{{object.get_absolute_url}}">{{object}}</a></td>
<td>{{ object.name }}</td>
<td>{{ object.address }}</td>
<td>{{ object.city }}</td>
<td>{{ object.postcode }}</td>
<td>{{ object.county }}</td>
<td>{{ object.country }}</td>
<td>{{ object.telephone }}</td>
<td>{{ object.email }}</td>
</tr>
{% endfor %}
</table><a class="btn btn-primary" href="{% url 'conform_staff_create' %}">Create new Staff</a>
{% endblock %}