Hi James,

substance_list is indeed the name of the view. I've now applied namespaces, 
and added quotes around each URL statement, and it works! thanks!

What I do not understand is how it could have worked in the past. 

Regards,
Vincent

On Monday, July 13, 2015 at 6:36:00 PM UTC+2, James Schneider wrote:
>
> What is the value being given to substance_list in your template context? 
> It looks like it may be empty.
>
> Unless 'substance_list' is the actual name of the view? In which case you 
> probably need to add quotes around it in your URL tag:
>
> {% url 'substance_list' %} 
>
> As is it is, the template is reading substance_list as a variable. If it 
> is the name, and not a variable, I would suggest looking into Django URL 
> name spaces, which are much easier to diagnose and maintain, and avoid the 
> missing quote issue since there can never be a variable name containing the 
> : character. For example,
>
> {% url 'substance:list' %} 
>
> Is much less vague than 'substance_list' since the : version wouldn't also 
> work as a variable name, making it easier to figure out that you want the 
> name of a URL and not a variable name.
>
> https://docs.djangoproject.com/en/1.8/topics/http/urls/#url-namespaces
>
> -James
> On Jul 13, 2015 7:27 AM, "Vincent" <vvanb...@gmail.com <javascript:>> 
> wrote:
>
>> Hi everyone,
>>
>> I've started working on an application after some trime, but I can not 
>> get it to run again. 
>>
>> I've got this error:
>>
>>   Reverse for '' with arguments '()' and keyword arguments '{}' not 
>> found. 0 pattern(s) tried: []
>> Internal Server Error: /substances/
>> Traceback (most recent call last):
>>   File "C:\Python27\lib\site-packages\django\core\handlers\base.py", 
>> line 164, in get_response
>>     response = response.render()
>>   File "C:\Python27\lib\site-packages\django\template\response.py", line 
>> 158, in render
>>     self.content = self.rendered_content
>>   File "C:\Python27\lib\site-packages\django\template\response.py", line 
>> 135, in rendered_content
>>     content = template.render(context, self._request)
>>   File "C:\Python27\lib\site-packages\django\template\backends\django.py"
>> , line 74, in render
>>     return self.template.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\base.py", line 209, 
>> in render
>>     return self._render(context)
>>   File "C:\Python27\lib\site-packages\django\template\base.py", line 201, 
>> in _render
>>     return self.nodelist.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\base.py", line 903, 
>> in render
>>     bit = self.render_node(node, context)
>>   File "C:\Python27\lib\site-packages\django\template\debug.py", line 79, 
>> in render_node
>>     return node.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\loader_tags.py", 
>> line 135, in render
>>     return compiled_parent._render(context)
>>   File "C:\Python27\lib\site-packages\django\template\base.py", line 201, 
>> in _render
>>     return self.nodelist.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\base.py", line 903, 
>> in render
>>     bit = self.render_node(node, context)
>>   File "C:\Python27\lib\site-packages\django\template\debug.py", line 79, 
>> in render_node
>>     return node.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\defaulttags.py", 
>> line 329, in render
>>     return nodelist.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\base.py", line 903, 
>> in render
>>     bit = self.render_node(node, context)
>>   File "C:\Python27\lib\site-packages\django\template\debug.py", line 79, 
>> in render_node
>>     return node.render(context)
>>   File "C:\Python27\lib\site-packages\django\template\defaulttags.py", 
>> line 507, in render
>>     six.reraise(*exc_info)
>>   File "C:\Python27\lib\site-packages\django\template\defaulttags.py", 
>> line 493, in render
>>     url = reverse(view_name, args=args, kwargs=kwargs, current_app=
>> current_app)
>>   File "C:\Python27\lib\site-packages\django\core\urlresolvers.py", line 
>> 579, in reverse
>>     return force_text(iri_to_uri(resolver._reverse_with_prefix(view, 
>> prefix, *args, **kwargs)))
>>   File "C:\Python27\lib\site-packages\django\core\urlresolvers.py", line 
>> 496, in _reverse_with_prefix
>>     (lookup_view_s, args, kwargs, len(patterns), patterns))
>> NoReverseMatch: Reverse for '' with arguments '()' and keyword arguments 
>> '{}' not found. 0 pattern(s) tried: []
>> [13/Jul/2015 15:32:02]"GET /substances/ HTTP/1.1" 500 185051
>>
>> It happens when it encounters the first reverse lookup:
>>
>>    <li><a href=" {% url substance_list %} ">Stubstances</a></li> 
>>
>> I've traced it down to the render method in the URLNode class (in 
>> defaulttags), where 
>>
>>     view_name = self.view_name.resolve(context)
>>
>> returns an empty string.
>>
>> I have the following URL configurations
>>
>> site urls.py:
>> urlpatterns = (
>>     url(r'^$', lambda r : HttpResponseRedirect('substances/')),
>>     url(r'^norights/', TemplateView.as_view(template_name="norights.html"
>> ), name="norights"),
>>     url(r'^substances/',    include('substances.urls')),
>>     url(r'^suppliers/',     include('suppliers.urls')),
>>     url(r'^users/',         include('users.urls')),
>>     url(r'^sources/',       include('sources.urls')),
>>     url(r'^media/(.*)$', 'django.views.static.serve', {'document_root' :
>> settings.MEDIA_ROOT}, name="media"),
>> )
>>
>> app urls.py
>> urlpatterns = (
>>     url(r'^$', SubstanceListView.as_view(),                         name 
>> = 'substance_list'),
>>     url(r'^create$', SubstanceCreateView.as_view(),                 name 
>> = 'substance_create'),
>>     url(r'^update/(?P<pk>\d+)$', SubstanceUpdateView.as_view(),     name 
>> = 'substance_update'),
>>     url(r'^detail/(?P<pk>\d+)$', SubstanceDetailView.as_view(),     name 
>> = 'substance_detail'),
>>     url(r'^mutate/(?P<pk>\d+)$', SubstanceMutateView.as_view(),     name 
>> = 'substance_mutate'),
>>     url(r'^delete/(?P<pk>\d+)$', SubstanceDeleteView.as_view(),     name 
>> = 'substance_delete'),
>>     
>>     url(r'^mutate_check_ajax/(?P<pk>\d+)$', mutate_check_ajax,      name 
>> = 'mutate_check_ajax'),
>>     url(r'^component_check_ajax$', component_check_ajax,            name 
>> = 'component_check_ajax'),
>>     url(r'^supplier_check_ajax$', supplier_check_ajax,              name 
>> = 'supplier_check_ajax'),
>>     url(r'^report', substance_report,                               name 
>> = 'substance_report'),
>>     url(r'^worksheet/(?P<pk>\d+)$', substance_worksheet,            name 
>> = 'substance_worksheet')
>> )
>>
>> Oddly enough I did not change anything to get the error. Afterwards I 
>> upgraded to Django 1.8.3, but that did not matter.
>>
>>
>>
>> Thanks,
>> Vincent
>>
>>
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to django-users...@googlegroups.com <javascript:>.
>> To post to this group, send email to django...@googlegroups.com 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/e31cf3d3-ed7a-4fa5-bb96-fb546e66e53d%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/e31cf3d3-ed7a-4fa5-bb96-fb546e66e53d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/bde30363-a061-482d-8226-501097f83d2c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to