Приложение отображает пустой шаблон в мультиприложении django project - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть простое приложение 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...