Django передать варибаллы скобкам url

Здравствуйте, я изучаю учебник Django 3.0 на youtube, но я использую Django 4.0 и в этом конкретном коде я получаю ошибку

код при получении ошибки на

urlpatterns = [

    path('update_order<str:pk>', views.updateorder, name ='updateorder'), ]`

код не выдает ошибку

urlpatterns = [
path('update_order', views.updateorder, name ='updateorder'),]

так что если я пытаюсь передать любые вербалы, то это дает мне ошибку

"NoReverseMatch at /
Reverse for 'updateorder' with no arguments not found. 1 pattern(s) tried: ['update_order/(?P<pk>[^/]+)\\Z']"

мои взгляды

def updateorder(request,pk):
    form = OrderForm()
    context = {"form":form}
    return render(request, 'order_form.html', context)

если вам нужна любая другая информация, пожалуйста, спрашивайте в комментариях. Заранее спасибо

Это правильное решение:

path('update_order/<int:pk>', views.updateorder, name ='updateorder')

Потому что, возможно, позже вам понадобится pk (id) в качестве integer. Число, которое вы зададите как pk, будет обрабатываться в вашем представлении, поэтому, чтобы предотвратить некоторые TypeErrors, вы должны передать его с помощью <int:pk>.

Вы можете войти в него с помощью localhost:8000\update_order\1 и затем обработать, вероятно, какой-то объект Order с помощью id=1. Если только у вас нет какого-нибудь пользовательского pk, но тогда вы будете знать, что делать :)

Вернуться на верх