多应用程序Django项目中的应用程序呈现空白模板

时间:2019-04-08 19:01:53

标签: django django-templates

我有一个简单的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 %}

0 个答案:

没有答案