Я изучаю Django и хорошо прогрессирую, но я застрял в том, как настроить разные URL-адреса для просмотра функций. Я создал проект TenancyMGt и приложение для аренды.
Я создал несколько представлений в модуле views.py Здесь важны два:
def createTenant(request):
form = TenantsForm
context = {'form': form}
html_form = render_to_string('rentals/partial_tenant_create.html',
context,
request=request,
)
return JsonResponse({'html_form': html_form})
class TenantsListView(ListView):
model = Tenants
context_object_name = 'tenant_list'
template_name = 'rentals/tenants_list.html'
paginate_by = 5
def get_queryset(self):
return Tenants.objects.all()
Теперь я создал файл urls.py в разделе аренда приложений:
from . import views
from django.urls import path
app_name='rentals'
urlpatterns = [
path("", views.TenantsListView.as_view(), name="index"),
path("",views.TenantDetailView.as_view,name="detail"),
path("",views.createTenant, name='createTenant'),
path("<int:pk>/",views.TenantUpdateView.as_view, name='edit'),
path("<int:pk>/",views.delete, name='delete'),
]
в TenancyMgr / urls, я добавляю следующее:
from django.contrib import admin
from django.urls import path,include
from rentals import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('rentals.urls')),
]
Когда я запускаю сервер, просмотр индекса открывается успешно! Из индекса я хочу открыть представление createTenant, как показано ниже.
<button type="button" class="btn btn-primary js-create-tenant" data-url="{% url 'rentals:createTenant' %}>
<span class="glyphicon glyphicon-plus"></span>
New Tenant
</button>
При нажатии кнопки я получаю URL-адреса ниже:
http://127.0.0.1:8000/rentals/createTenant/
Тогда я получаю ответ 404, ошибка страница не найдена. Но это открывает страницу администратора.
[![http://127.0.0.1:8000/admin/][1]][1]
Я прикрепил изображение структуры моего проекта.
Пока мне не удалось раскрыть секрет того, как работают URL-адреса. Я прошел через несколько руководств и вижу ту же настройку, что и мой.
Я прошу совета, как разгадать загадку, т.е. заставить работать другие URL-адреса.
Ronald