[Django] #21530: urls.py AttributeError: 'RegexURLPattern' object has no attribute 'app_name'

31 views
Skip to first unread message

Django

unread,
Nov 29, 2013, 8:35:04 AM11/29/13
to django-...@googlegroups.com
#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: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 1
Easy pickings: 0 | UI/UX: 0
-------------------------------------+--------------------
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

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

Django

unread,
Nov 29, 2013, 9:06:48 AM11/29/13
to django-...@googlegroups.com
#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:

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:

{{{

{{{#!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

unread,
Nov 29, 2013, 9:58:33 AM11/29/13
to django-...@googlegroups.com
#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
-------------------------------------+------------------------------------

Comment (by anonymous):

I updated the pull request (https://github.com/django/django/pull/2007) as
a better solution was provided by Aymeric Augustin

--
Ticket URL: <https://code.djangoproject.com/ticket/21530#comment:2>

Django

unread,
Nov 29, 2013, 10:39:47 AM11/29/13
to django-...@googlegroups.com
#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: Normal | 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 aaugustin):

* severity: Release blocker => Normal


Comment:

Now this just needs tests.

I don't think a crash of the debug view is a relatively rare case is a
release blocker. Baptiste, feel free to set back the flag if you disagree.

--
Ticket URL: <https://code.djangoproject.com/ticket/21530#comment:3>

Django

unread,
Dec 6, 2013, 9:07:26 PM12/6/13
to django-...@googlegroups.com
#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: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+------------------------------------
Changes (by alasdair):

* needs_tests: 1 => 0


Comment:

I had a go at writing tests. Pull request
https://github.com/django/django/pull/2043.

--
Ticket URL: <https://code.djangoproject.com/ticket/21530#comment:4>

Django

unread,
Dec 6, 2013, 9:27:53 PM12/6/13
to django-...@googlegroups.com
#21530: urls.py AttributeError: 'RegexURLPattern' object has no attribute
'app_name'
-------------------------------------+------------------------------------
Reporter: Damian.Myerscough@… | Owner: nobody
Type: Bug | Status: closed

Component: Core (URLs) | Version: 1.6
Severity: Normal | Resolution: fixed

Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+------------------------------------
Changes (by Baptiste Mispelon <bmispelon@…>):

* status: new => closed
* resolution: => fixed


Comment:

In [changeset:"a020dd0a99da13d0f024d42c46f01d8f503e9d5e"]:
{{{
#!CommitTicketReference repository=""
revision="a020dd0a99da13d0f024d42c46f01d8f503e9d5e"
Fixed #21530 -- Prevent AttributeError in default URLconf detection code.

Thanks to @dmyerscoug for the report and original patch
and to @alasdairnicol for the added tests.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/21530#comment:5>

Django

unread,
Dec 6, 2013, 9:41:37 PM12/6/13
to django-...@googlegroups.com
#21530: urls.py AttributeError: 'RegexURLPattern' object has no attribute
'app_name'
-------------------------------------+------------------------------------
Reporter: Damian.Myerscough@… | Owner: nobody
Type: Bug | Status: closed

Component: Core (URLs) | Version: 1.6
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+------------------------------------

Comment (by Baptiste Mispelon <bmispelon@…>):

In [changeset:"5a4884a978d48a21e765141cd9a4c37448875a85"]:
{{{
#!CommitTicketReference repository=""
revision="5a4884a978d48a21e765141cd9a4c37448875a85"
[1.6.x] Fixed #21530 -- Prevent AttributeError in default URLconf
detection code.

Thanks to @dmyerscoug for the report and original patch
and to @alasdairnicol for the added tests.

Backport of a020dd0a99da13d0f024d42c46f01d8f503e9d5e from master.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/21530#comment:6>

Reply all
Reply to author
Forward
0 new messages