Джанго новичок здесь. Я работаю над проектом с парой приложений и, таким образом, сохранил свои шаблоны на уровне моего проекта. Теперь проблема заключается в том, что некоторые шаблоны не обнаруживаются по соответствующим URL-адресам. Например, шаблон (property_list.html
), соответствующий списку свойств, точно обнаруживается по соответствующему URL (/properties
), в то время как property_detail.html
и property_new.html
, соответствующие properties/new
и properties/[insert property ID]
, соответственно, не обнаруживаются. Просто для записи, дома, зарегистрироваться, войти в систему работать просто отлично.
Я смотрел похожие случаи, как здесь, так и в других местах, но, кажется, ничто не указывает мне направление, которое я хочу. Итак, что дает?
Скриншот структуры шаблона находится на связанном изображении ниже. Опять же, папка находится на уровне root / project.
Структура шаблона

Настройки проекта (раздел шаблона)
# ...
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# ...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, '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.contrib import admin
from django.urls import path, include
from .views import HomePageView
urlpatterns = [
path('', HomePageView.as_view(), name='home'),
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
path('agencies/', include('agencies.urls')),
path('properties/', include('properties.urls')),
]
Свойства URL
from django.urls import path
from . import views
urlpatterns = [
path('', views.PropertyListView.as_view(), name='property_list'),
path('new/', views.PropertyCreateView.as_view(), name='property_new'),
path('<slug:pk>/', views.PropertyDetailView.as_view(), name='property_detail'),
]
Свойства Просмотров
from django.views.generic import ListView, DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.urls import reverse_lazy
from .models import Property
# Create your views here.
class PropertyListView(ListView):
model = Property
template_name = 'property_list.html'
class PropertyDetailView(DetailView):
model = Property
template_name = 'property_detail.html'
class PropertyCreateView(LoginRequiredMixin, CreateView):
model = Property
template_name = 'property_new.html'
fields = [
'property_type',
'is_for_sale',
'cost',
'location',
'num_of_bedrooms',
'num_of_bathrooms',
'num_of_parking_spaces',
'num_of_garages',
'has_pool',
'has_waterfront',
'has_elevator',
'added_on',
]
login_url = 'login'
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
# class PropertyUpdateView(LoginRequiredMixin, UpdateView):
# model = Property
# fields = ['title', 'body', ]
# template_name = 'property_edit.html'
# login_url = 'login'
# class PropertyDeleteView(LoginRequiredMixin, DeleteView):
# model = Property
# template_name = 'property_delete.html'
# success_url = reverse_lazy('property_list')
# login_url = 'login'
#