Django Tutorial Problem: Chapter 3 Syntax error

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
hoergen
User
Beiträge: 5
Registriert: Dienstag 19. Dezember 2006, 20:16

Sonntag 24. Dezember 2006, 23:05

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.
[url=http://blog.hoergen.org]dem hoergen[/url]
BlackJack

Montag 25. Dezember 2006, 00:13

Wie sieht's denn um Zeile 10 in `urls.py` herum aus? Dort gibt es ja offenbar den `SyntaxError`.
hoergen
User
Beiträge: 5
Registriert: Dienstag 19. Dezember 2006, 20:16

Montag 25. Dezember 2006, 00:28

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]
[url=http://blog.hoergen.org]dem hoergen[/url]
hoergen
User
Beiträge: 5
Registriert: Dienstag 19. Dezember 2006, 20:16

Montag 25. Dezember 2006, 01:01

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
[url=http://blog.hoergen.org]dem hoergen[/url]
hoergen
User
Beiträge: 5
Registriert: Dienstag 19. Dezember 2006, 20:16

Montag 25. Dezember 2006, 01:44

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!
[url=http://blog.hoergen.org]dem hoergen[/url]
BlackJack

Montag 25. Dezember 2006, 09:18

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'),
)
hoergen
User
Beiträge: 5
Registriert: Dienstag 19. Dezember 2006, 20:16

Montag 25. Dezember 2006, 12:01

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!
[url=http://blog.hoergen.org]dem hoergen[/url]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 26. Dezember 2006, 21:03

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten