id (номер) путь в URL - PullRequest
       2

id (номер) путь в URL

0 голосов
/ 31 декабря 2018

Я новичок в django

В urls.py я установил путь следующим образом.Я пытался создать страницу с URL: localhost: 8000 / themes / 1 /

urlpatterns = [
    path('topics/(?P<topic_id>\d+)/', views.topic, name='topic'),
]

В views.py.Код такой:

def topic(request, topic_id):
    """Show a single topic and all its entries"""
    topic = Topic.objects.get(id=topic_id)
    entries = topic.entry_set.order_by('date_added')
    context = {'topic': topic, "entries": entries}
    return render(request, 'learning_logs/topic.html', context)

Я получил ошибку 404 при вводе localhost: 8000 / themes / 1 /.

themes / (? P \ d +) / [name = 'topic']

Текущий путь themes / 1 / не соответствует ни одному из них.

Но правильными URL-адресами являются: localhost: 8000 / themes / (% 3FP1% 5Cd +) /

Что-то не так с путем в URL-адресах или в чем проблема?

1 Ответ

0 голосов
/ 31 декабря 2018

попробуйте

urlpatterns = [
    path(<b>'topics/&lttopic_id>/',</b> views.topic, name='topic'),
]

Если вы ожидаете целое число , вы можете указать его как

urlpatterns = [
    path(<b>'topics/<int:topic_id>/'</b>, views.topic, name='topic'),
]

Почему topics/(?P<topic_id>\d+)/' не работает ?

Активируйте, что вы смешиваете использование.Если вы пытаетесь, введите регулярное выражение в вашем URL , используйте re_path().
Итак, шаблонбудет как,

<b>from django.urls import re_path</b>

urlpatterns = [
    <b>re_path</b>('topics/(?P&lttopic_id>\d+)/', views.topic, name='topic'),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...