У меня есть простое приложение CRUD, которое отображает все свои шаблоны, когда я тестирую его как единственное приложение в проекте.Тем не менее, он показывает пустой шаблон для тех же шаблонов, когда я добавляю его в проект с приложением входа / выхода (так что есть два приложения вместе), я уверен, что это то, что я пропускаю, но я не могу решить это,help!
Все работает с шаблонами в папке шаблонов и является приложением по умолчанию в проекте.Я использую стандартный файл 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',
],
},
},
]
URL-адрес также прост, как показано ниже
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
Следовательно, я могу вызывать страницы таким образом / конформировать / конформировать / view_name /, и он отлично работает.
Однако, если я создаю новый проект и добавляю приложение для входа / выхода из системы кака также соответствующее приложение.В приложении входа в систему я предоставляю аутентифицированному пользователю панель навигации со ссылками меню на страницы шаблона в соответствующем приложении.
Когда я нажимаю на него, я получаю пустую страницу!Адрес показывает правильный URL для просмотра, но ничего не показывает.Я изменил текст в одном из шаблонов, чтобы убедиться, что приложение не находит его, и, похоже, это так.
Раздел шаблонов multi app 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',
],
},
},
]
ВВ этом случае у меня есть одна папка шаблонов в папке проекта с двумя папками, каждая из которых названа в честь приложений.
Я попытался переместить их и даже положить обратно в папки приложений, но он все еще показывает пустой экран.
Вот дерево папки проекта:
── conform
│ ├── migrations
│ │ └── __pycache__
│ ├── __pycache__
│ └── templates
│ └── conform
├── key
│ ├── migrations
│ │ └── __pycache__
│ └── __pycache__
├── media
│ └── profile_pics
├── static
│ └── images
├── templates
│ └── key
└── therapy
└── __pycache__
Где соответствуют и ключевые два приложения в терапевтическом проекте.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ !!
Я могу подтвердить, что приложение находит шаблон.Так что это не проблема конфигурации.Когда я переименую файл шаблона;скажем, от 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 %}