django -URL внутри тега привязки становится относительно текущей страницы django - PullRequest
0 голосов
/ 25 марта 2020

urls.py

    path('add_a_product_to_store/<store_id>',views.add_a_product_to_store,name='add_a_product_to_store'),
    path('show_a_store/<store_id>', views.show_a_store,name='show_a_store')

show_a_store. html

<a href="add_a_product_to_store/5">Add a product</a>

Когда пользователь вводит ip:port/show_a_store/5. , , , show_a_store.html показано. Но ссылка внутри тега привязки указывает на http://127.0.0.1:8000/show_a_store/add_a_product_to_store/5 вместо http://127.0.0.1:8000/add_a_product_to_store/5

Как сделать так, чтобы он указывал на фактический URL независимо от текущей страницы?

Ответы [ 3 ]

2 голосов
/ 25 марта 2020

добавить sla sh, как показано ниже

path('add_a_product_to_store/<store_id>/',views.add_a_product_to_store,name='add_a_product_to_store'),
path('show_a_store/<store_id>/', views.show_a_store,name='show_a_store')

и шаблон

<a href="{% url 'add_a_product_to_store' store_id=object.id %}">Add a product</a>
1 голос
/ 25 марта 2020

Вам необходимо использовать шаблонный тег url

<a href="{% 'add_a_product_to_store' store_id=5 %}">Add a product</a>
0 голосов
/ 25 марта 2020

Спасибо за ответы. Я совершил ошибку в html. При использовании тега привязки <a href="foo/"> означает **ip:port/url-of-current-page/foo/... Но <a href="/foo/">
означает ip:port/foo/ Если в начале URL-адреса нет forward slash (/), он рассматривается как относительный URL-адрес и URL-адрес текущей страницы добавляется к URL.

...