Я работаю над проектом, используя 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+)/$']
* совершенно другое.1028 *
У меня заканчиваются идеи и места, чтобы искать, что может быть причиной этого.Любая помощь или советы будут высоко оценены, спасибо заранее.