Seite 1 von 1

Django Tutorial Problem: Chapter 3 Syntax error

Verfasst: Sonntag 24. Dezember 2006, 23:05
von hoergen
Hallo,

da ich vor habe ein kleines Pythonprojekt für das Web zu schreiben, wollte ich mich mit Django anfreunden. Beim durcharbeiten der Chapter des Djangobooks bleibe ich bei Chapter 3 hängen und zwar genau dann, wenn ich in der urls.py die Eintragung wie im Chapter beschrieben mache ({url=http://www.djangobook.com/en/beta/chapter03/]http://www.djangobook.com/en/beta/chapter03/[/url]):

Code: Alles auswählen

from django.conf.urls.defaults import *
from mysite.views import current_datetime

urlpatterns = patterns('',
    (r'^now/$', current_datetime),
)
Egal, ob ich die ganze Datei mit dem Code ersetze oder ihn einfüge. Ich bekomme auf der Webseite ein SyntaxError
SyntaxError at /
invalid syntax (urls.py, line 10)
Request Method: GET
Request URL: http://127.0.0.1:8000/
Exception Type: SyntaxError
Exception Value: invalid syntax (urls.py, line 10)
Exception Location: /usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/core/urlresolvers.py in _get_urlconf_module, line 161
Ich benutze ein Kubuntu 6.06
Das aktuell stabile Django 0.95
Den Webserver aus Chapter 2

Kann mir jemand weiter helfen? Ich kriege das einfach nicht gelöst.

Verfasst: Montag 25. Dezember 2006, 00:13
von BlackJack
Wie sieht's denn um Zeile 10 in `urls.py` herum aus? Dort gibt es ja offenbar den `SyntaxError`.

Verfasst: Montag 25. Dezember 2006, 00:28
von hoergen
Die urls.py sieht im Moment so aus

Code: Alles auswählen

from django.conf.urls.defaults import *
from mysite.views import current_datetime



#urlpatterns = patterns('',
    # Example:
    # (r'^mysite/', include('mysite.apps.foo.urls.foo')),

    (r'^now/$', current_datetime),

    # Uncomment this for admin:
#     (r'^admin/', include('django.contrib.admin.urls')),
#)
[/quote]

Verfasst: Montag 25. Dezember 2006, 01:01
von hoergen
Ich glaube so kann das auch nicht funktionieren ;-) Daher habe ich dir urls.py nochmal abgeändert in:

Code: Alles auswählen

from django.conf.urls.defaults import *
from mysite.views import current_datetime



urlpatterns = patterns('',
    # Example:
    # (r'^mysite/', include('mysite.apps.foo.urls.foo')),

    (r'^now/$', current_datetime),

    # Uncomment this for admin:
#     (r'^admin/', include('django.contrib.admin.urls')),
)
Und nun bekomme ich folgende Meldung:
AttributeError at /now/
'function' object has no attribute 'rindex'
Request Method: GET
Request URL: http://localhost:8000/now/
Exception Type: AttributeError
Exception Value: 'function' object has no attribute 'rindex'
Exception Location: /usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/core/urlresolvers.py in get_mod_func, line 23

Verfasst: Montag 25. Dezember 2006, 01:44
von hoergen
Es ist wohl so, dass die Dokumentation neuer ist, als die stabile Version Funktionen hat, wie folgender link der Django users zeigt.

Weiter komme ich aber trotzdem nicht :-(

MÖH!

Verfasst: Montag 25. Dezember 2006, 09:18
von BlackJack
Die "alte" Version erwartet eine Zeichenkette mit dem Namen der Funktion und nicht die Funktion selbst. Auf dieser Zeichenkette wird dann `rindex()` aufgerufen, ein Attribut was die Funktion natürlich nicht hat, daher der Fehler.

Code: Alles auswählen

urlpatterns = patterns('',
    (r'^now/$', 'mysite.views.current_datetime'),
)

Verfasst: Montag 25. Dezember 2006, 12:01
von hoergen
Es funktioniert trotzdem nicht .-( Ich habe Deine urls.py genommen und bekomme nun folgende Ausgabe
ImportError at /now/
cannot import name current_datetime
Request Method: GET
Request URL: http://localhost:8000/now/
Exception Type: ImportError
Exception Value: cannot import name current_datetime
Exception Location: /usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/core/urlresolvers.py in _get_urlconf_module, line 161
Um das ganze Trauerspiel zu beenden, folgende Frage: Gibt es eine Möglichkeit "das Alte" zu überspringen und gleich mit der "richtigen Version" anzufangen? Dann muss ich mich nicht gleich wieder umgewöhnen.
Reicht es da einfach mir das Reposiory aus dem subversion zu ziehen?

Ich brauche jetzt mal ein Erfolgserlebnis ,-)

@edit

Ich habe jetzt die Subversion Version installiert und es funktioniert nun.
Vielen Dank an die Helfer!

Verfasst: Dienstag 26. Dezember 2006, 21:03
von Leonidas
hoergen hat geschrieben:Ich habe jetzt die Subversion Version installiert und es funktioniert nun.
Vergiss nicht sie ab und zu zu aktualisieren, da kommen ab und zu einige Bugfixes und Goodies rein.

Achja, das da einige Sachen nicht funktionieren steht teilweise auch in den Kommentaren auf der Seite - ist aber nicht verwunderlich, das Buch beschreibt nämlich DJango 1.0, welches es noch nicht gibt.