Seite 1 von 1

Django-Anfängerproblem

Verfasst: Dienstag 21. April 2009, 14:05
von pooner
Hi, ich brauche eure Hilfe bei einem Problem mit Django.

Ich möchte mit dem Testserver statische Files ausliefern und habe demzufolge meine settings und mein urls.py angepasst siehe hier

Code: Alles auswählen

#settings.py
import os

MEDIA_ROOT = os.path.join(PROJECT_ROOT, "static")
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'


# urls.py
from django.conf import settings
from django.contrib import admin



admin.autodiscover()

print settings.MEDIA_ROOT

urlpatterns = patterns('',
    # (r'^firstcms/', include('firstcms.foo.urls')),
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    (r'^admin/', include('cms.admin_urls')),
    (r'^admin/(.*)', admin.site.root),
    (r'^((.*)/)?$', include('cms.urls')),
    (r"static/(?P.*)$", "django.views.static.serve", {"document_root": settings.MEDIA_ROOT})

)
Über die Printausgabe lass ich mir den Pfad auf der Konsole ausgeben welcher korrekt ist. Rufe ich nun die Seite auf bekomme ich folgende Fehlermeldung :


Traceback (most recent call last):

File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 278, in run
self.result = application(self.environ, self.start_response)

File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 635, in __call__
return self.application(environ, start_response)

File "/usr/lib/python2.5/site-packages/django/core/handlers/wsgi.py", line 239, in __call__
response = self.get_response(request)

File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 67, in get_response
response = middleware_method(request)

File "/usr/lib/python2.5/site-packages/django/middleware/common.py", line 56, in process_request
if (not _is_valid_path(request.path_info) and

File "/usr/lib/python2.5/site-packages/django/middleware/common.py", line 142, in _is_valid_path
urlresolvers.resolve(path)

File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py", line 246, in resolve
return get_resolver(urlconf).resolve(path)

File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py", line 179, in resolve
for pattern in self.urlconf_module.urlpatterns:

File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py", line 198, in _get_urlconf_module
self._urlconf_module = __import__(self.urlconf_name, {}, {}, [''])

File "/home/wehr/testcms/firstcms/../firstcms/urls.py", line 18, in <module>
(r"static/(?P.*)$", "django.views.static.serve", {"document_root": settings.MEDIA_ROOT})

File "/usr/lib/python2.5/site-packages/django/conf/urls/defaults.py", line 15, in patterns
t = url(prefix=prefix, *t)

File "/usr/lib/python2.5/site-packages/django/conf/urls/defaults.py", line 31, in url
return RegexURLPattern(regex, view, kwargs, name)

File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py", line 90, in __init__
self.regex = re.compile(regex, re.UNICODE)

File "/usr/lib/python2.5/re.py", line 188, in compile
return _compile(pattern, flags)

File "/usr/lib/python2.5/re.py", line 241, in _compile
raise error, v # invalid expression

error: unknown specifier: ?P.

Ich verstehe nicht was daran falsch sein soll. Könnt ihr mir weiterhelfen ?

Danke im Voraus

Verfasst: Dienstag 21. April 2009, 15:11
von OverNord
Der Reguläre Ausdruck r"static/(?P.*)$" ist ungültig. Steht doch im Traceback, ganz am Ende.

In dem Ausdruck fehlt der Gruppenname. Ein gültiger Ausdruck könnte folgendermaßen aussehen:

r"static/(?P<gruppenname>.*)$"

GELÖST

Verfasst: Mittwoch 22. April 2009, 07:28
von pooner
Danke, habe es korrigiert