Джанго создал проблемную страницу не найден, когда я использую динамический URL - PullRequest
1 голос
/ 11 мая 2019

app / urls.py

        from django.conf.urls import url
        from . import views
        urlpatterns = [
        url(r'^$', views.home, name = "home"),
        url(r'^productform/', views.product_create_view,   name="productform"),
        url(r'^products/<int:id>', views.products, name="products"),
                ]

root / urls.py

      from django.conf.urls import url, include
      from django.contrib import admin

      urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'', include('firstapp.urls')),
           ]

views.py --- >>

         def products(request, id):
         obj = Product.objects.get(id=id)
         context = {
                "objects":obj
            }
         return render(request, "firstapp/products.html", context)

получение страницыошибка не найдена

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

1 Ответ

1 голос
/ 11 мая 2019

Ваш url(..) содержит path(..) синтаксис [Django-doc] .Вы можете решить проблему, используя path(..) ( и выше);или путем преобразования шаблона в шаблон регулярного выражения и использования url(..) [Django-doc] или re_path(..) [Django-doc] ( и выше).

Так что в и выше мы можем решить эту проблему, написав:

from django.conf.urls import <b>path</b>, url
from . import views

urlpatterns = [
    url(r'^$', views.home, name = "home"),
    url(r'^productform/', views.product_create_view,   name="productform"),
    <b>path</b>('products/<int:id>', views.products, name="products"),
]

или в :

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.home, name = "home"),
    url(r'^productform/', views.product_create_view,   name="productform"),
    <b>url</b>(r'^products/<b>(?P<id>\d+)</b>/$', views.products, name="products"),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...