Django URL-маршрутизация - PullRequest
0 голосов
/ 06 мая 2020

Я изучаю 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

...