Πρόβλημα με τα templates

4 views
Skip to first unread message

Kostas Tsakaloglou

unread,
Aug 3, 2009, 1:54:39 AM8/3/09
to djan...@googlegroups.com

Εχω ξεκινήσει πρόσφατα με το django, και κάνω ένα δοκιμαστικό project για να αποκτήσω εμπειρία.

Έχω το εξής λάθος:
Caught an exception while rendering: No module named urls


Έχουμε και λέμε:


template:
{% for tLibentry in Libentry_List %}
<tr><td>
<table width=100% class="t2" border="1">
<tr><td class="bold" width=10%>Title:</td>
<td>{{tLibentry.title}}&nbsp;(
<a href="{% url fosslibapp.views.libedit 15 %}">{{tLibentry.id}}</a>)
</td></tr>
<tr><td class="bold" width=10%>Tags:</td>
<td>{{tLibentry.tags}}</td></tr>
<tr><td class="bold" width=10%>Language:</td>
<td>{{tLibentry.lang}}</td></tr>
<tr><td class="bold" width=10%>Abstract:</td>
<td>{{tLibentry.abstract}}</td></tr>
<tr><td class="bold" width=10%>Url:</td>
<td>{{tLibentry.urladd}}</td></tr>
</table>
</td></tr>
{% endfor %}


urls.py
from django.conf.urls.defaults import *


# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

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

# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
(r'^admin/(.*)', include('django.contrib.admin.urls')),
(r'^insertdata/$','fosslib.fosslibapp.views.libentry'),
(r'^viewdata/$','fosslib.fosslibapp.views.libview'),
(r'^editdata/\d+/$','fosslib.fosslibapp.views.libedit'),

)

views.py:

def libedit(request,entryid):
a=entryid;
l_list=Libentry.objects.all()
t=get_template('libview.html')
c=Context({'Libentry_List':l_list})
html= t.render(c)
return HttpResponse(html)

Το πρόβλημα δημιουργείται όταν στο urls.py βάζω το \d+ στο τελευταίο url και μόλις βάλω το 15 στο template
{% url fosslibapp.views.libedit 15 %}

στα views, ακόμα δεν έχω βάλει τι θα κάνει, αλλά απλά θέλω να βγει to url στο template, να το δω να εμφανίζεται για επιλογή, και στην συνέχεια θα προχωρήσω.

Ότι αναζήτηση και εάν έκανα στο google, πάντα τα post αναφέρονταν στο admi n

Καθε βοήθεια ευπρόσδεκτη.


Dimitris Glezos

unread,
Aug 3, 2009, 6:00:00 AM8/3/09
to djan...@googlegroups.com
2009/8/3 Kostas Tsakaloglou <ts...@yahoo.com>:

>
> Εχω ξεκινήσει πρόσφατα με το django, και κάνω ένα δοκιμαστικό project για να αποκτήσω εμπειρία.

Ωραίος! Έχεις ανεβάσει τον κώδικα κάπου; (αν όχι, bitbucket and github rock).

> Έχω το εξής λάθος:
> Caught an exception while rendering: No module named urls

Είναι λίγο δύσκολο χωρίς το full traceback να δούμε ακριβώς το λάθος
(use http://dpaste.com). Ωστόσο θα μαντέψω ότι το Python path δεν
είναι ρυθμισμένο σωστά και το settings.py δε βρίσκει το urls.py.

http://docs.djangoproject.com/en/dev/ref/django-admin/#pythonpath
http://diveintopython.org/getting_to_know_python/everything_is_an_object.html

Αν η python "βλέπει" το project αλλά όχι τα applications μέσα σε αυτό,
αντικατέστησε το "urls" με "myproject.urls".


-d

>
>
> Έχουμε και λέμε:
>
>
> template:
>  {% for tLibentry in Libentry_List %}
>        <tr><td>
>        <table width=100% class="t2" border="1">
>        <tr><td class="bold" width=10%>Title:</td>

>        <td>{{tLibentry.title}} (

--
Dimitris Glezos

Transifex: The Multilingual Publishing Revolution
http://www.transifex.net/ -- http://www.indifex.com/

nikos roussos

unread,
Aug 3, 2009, 6:44:54 AM8/3/09
to djan...@googlegroups.com
On Sun, 2 Aug 2009 22:54:39 -0700 (PDT)
Kostas Tsakaloglou <ts...@yahoo.com> wrote:

> <a href="{% url fosslibapp.views.libedit 15 %}">{{tLibentry.id}}</a>)

> (r'^editdata/\d+/$','fosslib.fosslibapp.views.libedit'),

> Το πρόβλημα δημιουργείται όταν στο urls.py βάζω το \d+ στο τελευταίο url και


> μόλις βάλω το 15 στο template {% url fosslibapp.views.libedit 15 %}

my (wild) guess είναι πως αφού το 15 είναι το argument που θες να περάσεις στο
view, πρέπει και το url regexp να περιμένει argument. οπότε το d+ πρέπει να
είναι μέσα σε παρενθέσεις:

(r'^editdata/(\d+)/$','fosslib.fosslibapp.views.libedit'),

http://docs.djangoproject.com/en/dev/ref/templates/builtins/#url


--
nikos roussos
http://autoverse.net/

signature.asc

Kostas Tsakaloglou

unread,
Aug 3, 2009, 7:18:28 AM8/3/09
to djan...@googlegroups.com

Ναι, Νίκο τελικά αυτό ήταν και δουλεψε. Συνεχίζω κανονικά το development και άμα έχω πρόβλημα, θα ξαναστείλω.

--- On Mon, 8/3/09, nikos roussos <ni...@autoverse.net> wrote:

Dimitris Glezos

unread,
Aug 3, 2009, 7:23:28 AM8/3/09
to djan...@googlegroups.com
2009/8/3 Kostas Tsakaloglou <ts...@yahoo.com>:

>
>
> Ναι, Νίκο τελικά αυτό ήταν και δουλεψε. Συνεχίζω κανονικά το development και άμα έχω πρόβλημα, θα ξαναστείλω.

Το ερώτημα είναι, από πού κι ως πού το exception ήταν "No module named urls"?

--

Kostas Tsakaloglou

unread,
Aug 3, 2009, 1:17:39 PM8/3/09
to djan...@googlegroups.com

Μάλλον δεν μπορώ να απαντήσω, αλλά το είδα αρκετές φορές πριν. Από ότι μου φάνηκε, μάλλον είναι generic, γιατί διορθώνοντας κάτι άσχετο, άλλη φορά, μου άλλαξε exception σε άλλο.

--- On Mon, 8/3/09, Dimitris Glezos <dimi...@glezos.com> wrote:

Christos Trochalakis

unread,
Aug 3, 2009, 3:24:57 PM8/3/09
to djan...@googlegroups.com
2009/8/3 Dimitris Glezos <dimi...@glezos.com>:

> 2009/8/3 Kostas Tsakaloglou <ts...@yahoo.com>:
>>
>>
>> Ναι, Νίκο τελικά αυτό ήταν και δουλεψε. Συνεχίζω κανονικά το development και άμα έχω πρόβλημα, θα ξαναστείλω.
>
> Το ερώτημα είναι, από πού κι ως πού το exception ήταν "No module named urls"?
>

Το ερώτημα είναι γιατί το exception πιάστηκε στο rendering και όχι
όταν φορτωνόταν το ROOT_URLCONF!

nikos roussos

unread,
Aug 3, 2009, 3:48:50 PM8/3/09
to djan...@googlegroups.com

γιατί αυτό που είχε βάλει αρχικά ο κώστας στο urls δεν ήταν λάθος συντακτικά.
το λάθος γινόταν raise μόνο όταν έστελνε argument απ' το template. οπότε
έπρεπε να γίνει render το template για να πετάξει το error

signature.asc

Kostas Tsakaloglou

unread,
Aug 4, 2009, 12:02:44 AM8/4/09
to djan...@googlegroups.com

Το πιο κουφό από όλα είναι:

Ανοίγω τον browser και ζητάω την σελίδα, βγάζει το γνωστό Error. Με refresh, παίζει κανονικά.

Το ξανακάνω για επαλήθευση (κλείνω και ξανανοιγω τον browser για να μην είναι στην buffer), πάλι error και μετά με refresh, παίζει.

Ίσως να είναι κάτι λάθος στην εγκατάσταση ή τίποτε initialization. Προχωράω εγώ, και θα το ανεβάσω να υπάρχει ολόκληρο.

Μια που γράφω εδώ, θελω μετά από το submit μιας φόρμας, να καλέσω μια σελίδα, Το render_to_response καλεί template, ένω το HttpResponse στέλνει πίσω html. Εάν θέλω να καλέσω μια σελίδα ας πούμε http://test.org, τι του δίνω; Φαντάζομαι κάτι Redirect, αλλά δεν το έχω βρει στο DjangoBook, μάλλον θα είναι αλλού φαντάζομαι.


--- On Mon, 8/3/09, nikos roussos <ni...@autoverse.net> wrote:

> From: nikos roussos <ni...@autoverse.net>
> Subject: [django-gr] Re: Πρόβλημα με τα templates
> To: djan...@googlegroups.com

Thanos Lefteris

unread,
Aug 4, 2009, 2:47:02 AM8/4/09
to djan...@googlegroups.com
2009/8/4 Kostas Tsakaloglou <ts...@yahoo.com>:

> Μια που γράφω εδώ, θελω μετά από το submit μιας φόρμας, να καλέσω μια σελίδα, Το render_to_response καλεί
> template, ένω το HttpResponse στέλνει πίσω html. Εάν θέλω να καλέσω μια σελίδα ας πούμε http://test.org, τι του
> δίνω; Φαντάζομαι κάτι Redirect, αλλά δεν το έχω βρει στο DjangoBook, μάλλον θα είναι αλλού φαντάζομαι.

Νομίζω ψάχνεις για το HttpResponseRedirect

--
Θάνος Λευτέρης
http://thanos.lefteris.info

Kostas Tsakaloglou

unread,
Aug 4, 2009, 3:20:59 AM8/4/09
to djan...@googlegroups.com

Οκ Thano, thanx. Παντα τελικά η βοήθεια είναι η κινητήριος δύναμη. Οπότε συνεχίζω, και ότι άλλο χρειαστώ θα ξαναρωτήσω.

--- On Tue, 8/4/09, Thanos Lefteris <alef...@gmail.com> wrote:

> From: Thanos Lefteris <alef...@gmail.com>
> Subject: [django-gr] Re: Πρόβλημα με τα templates
> To: djan...@googlegroups.com

Christos Trochalakis

unread,
Aug 5, 2009, 5:43:18 AM8/5/09
to djan...@googlegroups.com
2009/8/3 nikos roussos <ni...@autoverse.net>:
> - Show quoted text -

Ναι αλλά για να κάνει render το template πρέπει να φτάσει στο view,
και για να φτάσει στο view σημαίνει ότι έχει φορτωθεί το urlconf! go
figure! δεν έχουμε και τον κώδικα ακριβώς.

Kostas Tsakaloglou

unread,
Aug 5, 2009, 7:00:20 AM8/5/09
to djan...@googlegroups.com
Παίδες, για να διευκολύνω λίγο τα πράγματα. Είπα να παίξω λίγο με το admin, οπότε έχω το πρόβλημα:

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 57, in process_request
_is_valid_path("%s/" % request.path_info)):

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 181, in resolve
sub_match = pattern.resolve(new_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, {}, {}, [''])

ImportError: No module named urls

επίσης το urls.py:
========================================
from django.conf.urls.defaults import *
from django.contrib import admin
from fosslib.fosslibapp import views

admin.autodiscover()

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

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

# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
(r'^admin/(.*)', include('django.contrib.admin.urls')),
(r'^index/$', views.firstpage),
(r'^insertdata/$',views.libentry),
(r'^viewdata/$', views.libview),
(r'^editdata/(\d+)/$',views.libedit),

)
============================================================
Τo admin είναι κάτι στάνταρ, οπότε το πρόβλημα μάλλον είναι γενικό.

Η τελευταία κακή υποψία:

Έχω ubuntu 8.10. Μήπως πρέπει να ενεργοποιήσω κανένα root account;

Ξέρω και γω; Προσπάθησα να βάλω και το openeclass και είχα μερικά προβληματάκια..........


--- On Wed, 8/5/09, Christos Trochalakis <yat...@ideopolis.gr> wrote:

> From: Christos Trochalakis <yat...@ideopolis.gr>
> Subject: [django-gr] Re: Πρόβλημα με τα templates
> To: djan...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages