Django: замена части URL целочисленной переменной - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь заменить URL-вызов переменной следующим образом:

href="{% url 'educators:pay_patient' 9 %}".replace(/9/, x)

И значение x является просто первичным ключом модели, то есть x = 1,2,3 и т. Д..

Моя проблема в том, что кажется, что число цифр x и число, которое он заменяет, должны совпадать.Например, x = 1 работает с 9, но не с 90.

, если x = 1,

href="{% url 'educators:pay_patient' 90 %}".replace(/90/, x)

дает ошибку 404 с

Request URL:    http://127.0.0.1:8000/educators/study/pay/90/

Как мнесделать эту схему обобщенной для любого числа цифр x?


edit: По запросу мой шаблон URL, соответствующий этому виду:

path('educators/', include(([
    path('study/pay/<int:pk>/', educators.PayPatientView.as_view(), name='pay_patient')

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

из официального документа django-url ссылка мы можем присвоить переменную как аргументы url, и для вашего случая это может быть

urlpatterns = [

    path('/educators/study/pay/<int:pk>/', your_view, name=your_view_name),
    ...
]

, а в views.py вы можете иметь дополнительную переменную pkв качестве аргумента.

0 голосов
/ 10 февраля 2019

Вы можете использовать функцию обратного вызова replace для присвоения значения в соответствии с длиной совпадения.

let href="{% url 'educators:pay_patient' 9010325%}"

let op = href.replace(/\d+/, function(match){
  return new Array(match.length).fill(0).map((e,i)=>i+1).join('')
})

console.log(op)

Это всего лишь пример, добавленный на основе предоставленного вами ввода, вы можете заменить регулярное выражение в соответствии с вашими потребностями.или вы можете указать более подробную информацию о вашем шаблоне URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...