2014-02-18 3 views
0

им Джанго обучения, делая небольшую веб-приложение, которое IM вытекающую из http://www.tangowithdjango.com/book/chapters/models_templates.html сейчас Раздела 6UnboundLocalError: локальная переменная 'категории' обращаться до назначения

views.py

category_list = Category.objects.order_by('-likes')[:5] 
    def index(request): 
    context = RequestContext(request) 
    global category_list 
    context_dict = {'categories': category_list} 

    for category in category_list: 
    category.url = category.name.replace(' ', '_') 
    return render_to_response('rango/index.html', context_dict, context) 


    def category(request, category_name_url): 

    context = RequestContext(request) 
    category_name = category_name_url.replace('_', ' ') 
    context_dict = {'category_name': category_name} 

try: 

    category = Category.objects.get(name=category_name) 
    pages = Page.objects.filter(category=category) 
    context_dict['pages'] = pages 
    context_dict['category'] = category 

except Category.DoesNotExist: 
    pass 

return render_to_response('rango/category.html', context_dict, context) 

urls.py

url(r'^about/$', views.about, name='about'), 
url(r'^category/(?P<category_name_url>\w+)/$', views.category, name='category'),) 
    Environment: 


Request Method: GET 
Request URL: http://'localhost:8080'/rango/catgeory/python/ 

Django Version: 1.6.1 
Python Version: 2.7.3 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'rango') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware') 


Traceback: 
File "C:\python27\lib\site-packages\django\core\handlers\base.py" in get_response 
    114.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "C:\Users\User\Documents\tango\rango\views.py" in catgeory 
    34.  except catgeory.DoesNotExist: 

Exception Type: UnboundLocalError at /rango/catgeory/python/ 
Exception Value: local variable 'catgeory' referenced before assignment 

на самом деле category_name_url=u'python', который хорош для python, но я не уверен насчет u до того, как значение и im работают над eclipse

+1

Можете ли вы вставить, ошибку в вашем посте? – Silwest

+0

Код, указанный здесь, не будет вызывать это исключение. Что вы на 100% уверены, что используете этот код, а не что-то еще? Что такое * полная * трассировка? –

ответ

1

Этот след не соответствует вашему коду. Код вида говорит Category.DoesNotExist, в то время как трассировка показывает category.DoesNotExist. Первое работает, потому что задан класс Category. Последнее не будет работать, потому что category еще не существует, если исключение поднято на Category.objects.get().

Если приведенный выше код представления является точным, у вас возникает другая проблема, вызывающая выполнение устаревшего кода.

Смежные вопросы