Django как-то пытается отрендерить неправильный шаблон - PullRequest
0 голосов
/ 26 мая 2018

Я работаю над проектом, используя Python 3.6 и Django 2.0.5.И у меня есть шаблон с именем register_client.html, который я хотел бы использовать для рендеринга простой страницы, на которой регистрируются новые клиенты для модели Client.

Ниже приведен мой полный urlpatterns:

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^logout/$', views.user_logout, name='logout'),
    re_path(r'^$', views.home, name='home'),
    re_path(r'^home/$', views.home, name='home'),
    re_path(r'^about/$', views.about, name='about'),
    re_path(r'^blog/$', views.blog, name='blog'),
    re_path(r'^contact/$', views.contact, name='contact'),
    re_path(r'^lawsuits/$', views.lawsuits_list, name='lawsuits'),
    re_path(r'^my_profile/$', views.my_profile, name='my_profile'),
    re_path(r'^register_client/$', views.register_client, name='register_client'),
    re_path(r'^client/(\d+)/$', views.client, name='client'),
    re_path(r'^client/(\d+)/lawsuits/$', views.lawsuits_list, name='lawsuits'),
    re_path(r'^client/(\d+)/edit/$', views.edit_client, name='edit_client'),
    re_path(r'^client/(\d+)/remove/$', views.remove_client, name='remove_client'),
    re_path(r'^lawsuit/(\d+)/$', views.lawsuit, name='lawsuit'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Шаблон, который должен перехватить запрос к http://localhost/register_client, должен быть re_path(r'^register_client/$', views.register_client, name='register_client').

А вот представление, которое должно соответствующим образом отобразить шаблон:

def register_client(request):
    if request.user.is_authenticated and request.user.is_staff:
        if request.method == "POST":
            form = ClientForm(request.POST, request.FILES)
            if form.is_valid():
                # register a new client
                ...
            else:
                print(form.errors)
        form = ClientForm()
        return render(request, 'register_client.html', {'form': form})
    return HttpResponseRedirect('/home/') # not_permitted view

С вышеупомянутыми конфигурациями Django дает мне NoReverseMatch at /register_client/.И далее говорится, что он ищет представление с именем client, которое в моем views.py - Reverse for 'client' with arguments '('',)' not found. 1 pattern(s) tried: ['client/(\\d+)/$']

Error Message* совершенно другое.1028 *

У меня заканчиваются идеи и места, чтобы искать, что может быть причиной этого.Любая помощь или советы будут высоко оценены, спасибо заранее.

...