ID в качестве параметра GET
В приведенном выше примере вашим URL всегда является https://myurl.com/dashboard/payment/accepted/
, поскольку ?id=MyvariableID
является только параметром GET.
Просто создайте простой URL-путь, как-то так:
from yourapp import views
path('dashboard/payment/accepted/', views.accepted, name='accepted')
По вашему мнению, вы можете получить доступ к параметру через request.GET
.Например:
def accepted(request):
payment_id = request.GET.get('id')
if payment_id is not None:
# do something
else:
# no payment ID found
Это вернет None
, если id
не найден, поэтому вам нужно выполнить управление исключениями вручную.Вы также можете использовать это:
def accepted(request):
try:
payment_id = request.GET['id']
# verify payment ID
except KeyError:
# no payment ID found
ID как часть URL
Если вы хотите, чтобы ID был частью URL, то все выглядит немного иначе.Прежде всего, ваша конфигурация URL выглядит примерно так:
from yourapp import views
path('dashboard/payment/accepted/<payment_id>/', views.accepted, name='accepted')
Ваше представление получает payment_id
от URL в качестве аргумента:
def accepted(request, payment_id):
# verify payment ID
Кстати.Вы, вероятно, хотите изменить <payment_id>
в path
на <int:payment_id>
, если вы ожидаете int
.Или вы можете использовать re_path
и даже выполнить проверку регулярного выражения для лучшего соответствия.