0
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('Homepage.urls')),
url(r'^RepairLog/', include('RepairLog.urls')),
url(r'^RepairLog/DMRView/', TemplateView.as_view(template_name="RepairLog/DMRView.html"),name="dmr view"),
url(r'^RepairLog/DMRtab/', TemplateView.as_view(template_name="RepairLog/DMRtab.html"),name="dmrtab"),
url(r'^RepairLog/DMRwork/', TemplateView.as_view(template_name="RepairLog/DMRwork.html"),name="dmrwork"),
url(r'^Inventory/', include('Inventory.urls')),
url(r'^Inventory/inventory/<barcodething>/', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"),
url(r'^Inventory/inventory/', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"),
url(r'^Inventory/createitem/', TemplateView.as_view(template_name="Inventory/createItem.html"),name="createitem"),
url(r'^Inventory/manageitem/', TemplateView.as_view(template_name="Inventory/manageItem.html"),name="manageitem"),
url('accounts/', include('django.contrib.auth.urls')),] ##Necessary to login validation

I am trying to access barcodething in my inventory.html template. I have tried {{barcodething}} but that does not work. URL I am using is http://127.0.0.1:8000/Inventory/inventory/123456789/ which should pass barcodething=123456789

If I delete url(r'^Inventory/inventory/', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"), Or change it to: url(r'^Inventory/inventory/**$**', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"),

Then this error unexpectedly comes up which may be helpful in determing root cause:

`

 Using the URLconf defined in MT.urls, Django tried these URL patterns, in this order:

    ^admin/
    ^ ^homepage/ [name='homepage']
^RepairLog/
^RepairLog/DMRView/ [name='dmr view']
^RepairLog/DMRtab/ [name='dmrtab']
^RepairLog/DMRwork/ [name='dmrwork']
^Inventory/ ^items/$ [name='item-list']
^Inventory/ ^items\.(?P<format>[a-z0-9]+)/?$ [name='item-list']
^Inventory/ ^items/(?P<pk>[^/.]+)/$ [name='item-detail']
^Inventory/ ^items/(?P<pk>[^/.]+)\.(?P<format>[a-z0-9]+)/?$ [name='item-detail']
^Inventory/ ^itemreorder/$ [name='item-list']
^Inventory/ ^itemreorder\.(?P<format>[a-z0-9]+)/?$ [name='item-list']
^Inventory/ ^itemreorder/(?P<pk>[^/.]+)/$ [name='item-detail']
^Inventory/ ^itemreorder/(?P<pk>[^/.]+)\.(?P<format>[a-z0-9]+)/?$ [name='item-detail']
^Inventory/ ^$ [name='api-root']
^Inventory/ ^\.(?P<format>[a-z0-9]+)/?$ [name='api-root']
^Inventory/inventory/<barcodething>/$ [name='inventory']
^Inventory/createitem/ [name='createitem']
^Inventory/manageitem/ [name='manageitem']
accounts/
The current path, Inventory/inventory/1/, didn't match any of these.`

Solution: Change url(r'^Inventory/inventory/<barcodething>/', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"),

TO: url(r'^Inventory/inventory/(?P<barcodething>[\w-]+)/', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"),

Chad
  • 40
  • 5

2 Answers2

0

You can access it like this:

{{ view.kwargs.barcodething }}

Here is more detailed answer: https://stackoverflow.com/a/45099100/11449888

HelenShy
  • 306
  • 1
  • 7
  • Hi HelenShy, I tried that and it did not produce any information for me. I have also tried {{request.resolver_match.kwargs.barcodething}} And also {{self.kwargs.barcodething}} And even
  • {{barcodething}}
  • I must be missing something else. – Chad Jan 08 '20 at 23:13
  • If I delete `url(r'^Inventory/inventory/', TemplateView.as_view(template_name="Inventory/inventory.html"),name="inventory"), `code (or add a $ at the end of the regex) then Django fails to find the path. I think this may be the root cause. `Request Method: GET Request URL: http://127.0.0.1:8000/Inventory/inventory/1/ Using the URLconf defined in MT.urls, Django tried these URL patterns, in this order: The current path, Inventory/inventory/1/, didn't match any of these. – Chad Jan 08 '20 at 23:32
  • Have you tried changing definition in url? r'^Inventory/inventory/?P[\w-]+)/ – HelenShy Jan 08 '20 at 23:33
  • Excellent @HelenShy! `r'^Inventory/inventory/**(**?P[\w-]+)/ `worked with `{{barcodething}}` in my template!! – Chad Jan 08 '20 at 23:39
  • Congratulations!)) You need to use regex when you are defining slugs in url... – HelenShy Jan 08 '20 at 23:44