URL, доступный в urls.py, по-прежнему получает 404 в Django 2 - PullRequest
0 голосов
/ 16 марта 2020

Я написал функцию в views.py следующим образом

def removeinvoices(request,invoiceID,creatorID,deletorid,typeofchange):
    form = invoicestorageForm()
    form.invoiceid = invoiceID
    form.creatorid = creatorID
    form.deletorid = deletorid
    form.typeofchange = typeofchange
    form.save()
    thatInvoice = taxInvoice.objects.filter(invoiceid=invoiceID).first()
    thatInvoice.delete()
    messages.success(request, "Invoice ID "+ invoiceID +" removed Successfully !")
    return redirect("vieweinvoices")

и написал в urls.py следующее:

path("removeinvoices/<int:invoiceID>/<int:creatorID/><int:deletorid>/<str:typeofchange>", views.removeinvoices, name="removeinvoices",)

И я генерирую href в JS динамически, я могу получить все переменные правильно, но все равно говорит 404 ошибка когда я нажимаю на href image

Я могу отлично работает со всеми другими URL-адресами, упомянутыми на картинке.

Не уверен, где я ошибаюсь!

1 Ответ

0 голосов
/ 16 марта 2020

Для использования str в Path вы можете использовать re_path()

urls.py , используя re_path()

re_path(r"^removeinvoices/(?P<invoiceID>\d+)/(?P<creatorID>\d+)/(?P<deletorid>\d+)/(?P<typeofchange>\w+)/$", views.removeinvoices, name="removeinvoices",)

URL: http://127.0.0.1: 9091/5/1/1 / delete /

Кроме того, в вашем URL-адресе вы потеряли значение / между <int:creatorID/><int:deletorid>.

Изменение:

path("removeinvoices/<int:invoiceID>/<int:creatorID/><int:deletorid>/<str:typeofchange>", views.removeinvoices, name="removeinvoices",)

Кому:

path("removeinvoices/<int:invoiceID>/<int:creatorID>/<int:deletorid>/<str:typeofchange>", views.removeinvoices, name="removeinvoices",)
...