2011-07-26 4 views
1

에서 작동하지 않는 명명 된 URL은 내가 그렇게처럼 내 기본 템플릿에 사용 된 이름의 URL의 수 있습니다. 그러나, 나는 모든 프로젝트의 URL을 기본 urls.py 모듈에 정의 했으므로 각 모듈에 포함 된 사용법을 해독하려고했습니다.장고 템플릿

홈페이지 :

from django.conf.urls.defaults import patterns, include, url 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    (r'^lessons/', include('lessons.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

앱 :

나는이 변경 한 이후
from django.conf.urls.defaults import patterns, include, url 
from django.views.generic import DetailView, ListView 
from lessons.views import StudentListView, LessonListView 
from django.contrib.auth.decorators import login_required 

urlpatterns = patterns('lessons.views', 
    url(r'^addlesson/$', 'addlesson', name='addlesson'), 
    url(r'^mylessons/$', login_required(LessonListView.as_view()), name='mylessons'), 
    url(r'^addstudent/$', '.addstudent', name='addstudent'), 
    url(r'^mystudents/$', login_required(StudentListView.as_view()), name='mystudents'), 
    url(r'^addservice/$', 'addservice', name='addservice'), 
    url(r'^addlocation/$', 'addlocation', name='addlocation'), 
) 

, 내가받을 다음과 같은 오류 :

Caught KeyError while rendering: 'lessons.views.' 

    Environment: 


Request Method: GET 
Request URL: http://localhost:8000/lessons/addlesson/ 

Django Version: 1.3 
Python Version: 2.6.5 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.flatpages', 
'registration', 
'lessons', 
'utilities', 
'django.contrib.admin', 
'debug_toolbar', 
'south'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'debug_toolbar.middleware.DebugToolbarMiddleware', 
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware') 


Template error: 
In template /home/dan/mylessons/templates/base.html, error at line 93 
    Caught KeyError while rendering: 'lessons.views.' 
    83 :   <script> 


    84 :  $(function() { 


    85 :   $(".datetimepicker").datetimepicker(); 


    86 :  }); 


    87 :  </script> 


    88 : </head> 


    89 : <body> 


    90 :   <div id="wrapper"> 


    91 :    <div id="header"> 


    92 :  


    93 :    <a href="{% url addlocation %}">Add Location</a> 


    94 :    <a href="{% url addservice %}">Add Service</a> 


    95 :    <a href="{% url addlesson %}">Add Lesson</a> 


    96 :    <a href="{% url mystudents %}">My Students</a> 


    97 :    <a href="{% url mylessons %}">My Lessons</a> 


    98 :    


    99 :    


    100 :     


    101 : 


    102 : 


    103 : 


Traceback: 
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/decorators.py" in _wrapped_view 
    23.     return view_func(request, *args, **kwargs) 
File "/home/dan/mylessons/utilities/decorators.py" in wrapper 
    13.    return f(request, *args, **kwargs) 
File "/home/dan/mylessons/lessons/views.py" in addlesson 
    104.  }, context_instance=RequestContext(request)) 
File "/usr/local/lib/python2.6/dist-packages/django/shortcuts/__init__.py" in render_to_response 
    20.  return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) 
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in render_to_string 
    188.   return t.render(context_instance) 
File "/usr/local/lib/python2.6/dist-packages/django/template/base.py" in render 
    123.    return self._render(context) 
File "/usr/local/lib/python2.6/dist-packages/django/test/utils.py" in instrumented_test_render 
    57.  return self.nodelist.render(context) 
File "/usr/local/lib/python2.6/dist-packages/django/template/base.py" in render 
    744.     bits.append(self.render_node(node, context)) 
File "/usr/local/lib/python2.6/dist-packages/django/template/debug.py" in render_node 
    73.    result = node.render(context) 
File "/usr/local/lib/python2.6/dist-packages/django/template/loader_tags.py" in render 
    127.   return compiled_parent._render(context) 
File "/usr/local/lib/python2.6/dist-packages/django/test/utils.py" in instrumented_test_render 
    57.  return self.nodelist.render(context) 
File "/usr/local/lib/python2.6/dist-packages/django/template/base.py" in render 
    744.     bits.append(self.render_node(node, context)) 
File "/usr/local/lib/python2.6/dist-packages/django/template/debug.py" in render_node 
    73.    result = node.render(context) 
File "/usr/local/lib/python2.6/dist-packages/django/template/defaulttags.py" in render 
    437.    url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in reverse 
    391.    *args, **kwargs))) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in reverse 
    312.   possibilities = self.reverse_dict.getlist(lookup_view) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_reverse_dict 
    229.    self._populate() 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _populate 
    208.      for name in pattern.reverse_dict: 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_reverse_dict 
    229.    self._populate() 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _populate 
    208.      for name in pattern.reverse_dict: 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_reverse_dict 
    229.    self._populate() 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _populate 
    220.     lookups.appendlist(pattern.callback, (bits, p_pattern)) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_callback 
    164.    self._callback = get_callable(self._callback_str) 
File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py" in wrapper 
    124.   result = func(*args) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in get_callable 
    91.     lookup_view = getattr(import_module(mod_name), func_name) 
File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py" in import_module 
    36.  return sys.modules[name] 

Exception Type: TemplateSyntaxError at /lessons/addlesson/ 
Exception Value: Caught KeyError while rendering: 'lessons.views.' 

나는 명명 된 URL에 대한 참조를 제거하는 경우 템플릿에서 수동으로 입력하면 제대로 작동합니다.

내가 뭘 잘못하고 있니?

감사의 말.

감사합니다.

답변

3

추가 '.' 'addstudent'앞에 lessons.urls의 8 행에있는 문자입니다.

Django는 'lessons.views..addstudent'를 모듈 + 메소드로 변환하려고 시도하고 있으며 추가 기간으로 인해 키 오류가 발생합니다.

+0

감사합니다. 훌륭한 작품들입니다. – Dan