#21530: urls.py AttributeError: 'RegexURLPattern' object has no attribute
'app_name'
-------------------------------------+------------------------------------
     Reporter:  Damian.Myerscough@…  |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Core (URLs)          |                  Version:  1.6
     Severity:  Release blocker      |               Resolution:
     Keywords:                       |             Triage Stage:  Accepted
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  1                    |  Patch needs improvement:  1
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+------------------------------------
Changes (by bmispelon):

 * needs_better_patch:   => 1
 * needs_tests:   => 1
 * needs_docs:   => 0
 * stage:  Unreviewed => Accepted
 * severity:  Normal => Release blocker


Old description:

> The urls.py file does not support the ability of supplying one URL. When
> specifying one URL within the urls.py file you get the following error:-
>
> (nagios-api-env)dmyerscough-ltm:nagios_restful dmyerscough$ python
> manage.py runserver
> Validating models...
>
> 0 errors found
> November 29, 2013 - 09:53:03
> Django version 1.6, using settings 'nagios_restful.settings'
> Starting development server at http://127.0.0.1:8000/
> Quit the server with CONTROL-C.
> Traceback (most recent call last):
>   File
> "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py",
> line 85, in run
>     self.result = application(self.environ, self.start_response)
>   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
> packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
>     return self.application(environ, start_response)
>   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
> packages/django/core/handlers/wsgi.py", line 206, in __call__
>     response = self.get_response(request)
>   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
> packages/django/core/handlers/base.py", line 148, in get_response
>     response = debug.technical_404_response(request, e)
>   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
> packages/django/views/debug.py", line 471, in technical_404_response
>     and tried[0][0].app_name == tried[0][0].namespace == 'admin')):
> AttributeError: 'RegexURLPattern' object has no attribute 'app_name'
> [29/Nov/2013 09:53:06] "GET / HTTP/1.1" 500 59
>

> To reproduce this error you can do the following:
>
> 1. Edit the urls.py file and add the following:-
>
> from django.conf.urls import patterns, include, url
>
> urlpatterns = patterns('',
>     url(r'^test/', 'nagios_api.views.comments', name='home'),
> )
>

> 2. Run your project and navigate to the web page and you get the above
> exception.
>

> I have created a Pull request on GitHub to fix the issue -
> https://github.com/django/django/pull/2006

New description:

 The urls.py file does not support the ability of supplying one URL. When
 specifying one URL within the urls.py file you get the following error:
 {{{
 (nagios-api-env)dmyerscough-ltm:nagios_restful dmyerscough$ python
 manage.py runserver
 Validating models...

 0 errors found
 November 29, 2013 - 09:53:03
 Django version 1.6, using settings 'nagios_restful.settings'
 Starting development server at http://127.0.0.1:8000/
 Quit the server with CONTROL-C.
 Traceback (most recent call last):
   File
 
"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py",
 line 85, in run
     self.result = application(self.environ, self.start_response)
   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
 packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
     return self.application(environ, start_response)
   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
 packages/django/core/handlers/wsgi.py", line 206, in __call__
     response = self.get_response(request)
   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
 packages/django/core/handlers/base.py", line 148, in get_response
     response = debug.technical_404_response(request, e)
   File "/Users/dmyerscough/nagios-api-env/lib/python2.7/site-
 packages/django/views/debug.py", line 471, in technical_404_response
     and tried[0][0].app_name == tried[0][0].namespace == 'admin')):
 AttributeError: 'RegexURLPattern' object has no attribute 'app_name'
 [29/Nov/2013 09:53:06] "GET / HTTP/1.1" 500 59
 }}}


 To reproduce this error you can do the following:

 1. Edit the urls.py file and add the following:
 {{{#!python
 from django.conf.urls import patterns, include, url

 urlpatterns = patterns('',
     url(r'^test/', 'nagios_api.views.comments', name='home'),
 )

 }}}

 2. Run your project and navigate to the web page and you get the above
 exception.


 I have created a Pull request on GitHub to fix the issue -
 https://github.com/django/django/pull/2006

--

Comment:

 Hi,

 I can indeed reproduce this issue when the root urlconf only contains one
 non-empty pattern.
 The urlconf itself works (I can access my view by navigating to the
 correct URL) but the problem is in the debug view.

 If I try to access a URL that's not mapped to anything, the debug view is
 triggered and the reported exception occurs.


 Note that this only affects the 1.6 and master branch, and that this
 regression was introduced by commit
 3f1c7b70537330435e2ec2fca9550f7b7fa4372e.

 As for your patch, it does seem to fix the issue and it even passes the
 full test suite but it seems wrong to just be removing code.
 In any case, a full patch will also require a regression testcase so I'm
 marking this as `patch needs improvement`.


 Thanks.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/21530#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/085.be7977800ea758663b71742165aa19d7%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to