2016-08-22 4 views
-1

models.pyDjango/Python: UnboundLocalError. где моя ошибка?

class Revistapresei(models.Model): 
    titlulArticol = models.CharField(max_length=300) 
    textArticol = models.TextField() 
    dataArticol = models.DateField(blank=True, null=True) 
    linkArticol = models.CharField(blank=True, max_length=200) 

    STIRIINTERNE = 'Interne' 
    STIRIEXTERNE = 'Externe' 
    TIP_ARTICOL_CHOICES = (
     (STIRIINTERNE, 'Interne'), 
     (STIRIEXTERNE, 'Externe'), 
    ) 
    tipArticol = models.CharField(max_length=7, choices=TIP_ARTICOL_CHOICES, default=STIRIINTERNE) 

    def __str__(self): 
     return self.titlulArticol 

url.py

from django.conf.urls import include, url 
from . import views 

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^revistaPresei/$', views.revistaPresei_list, name='revistaPresei_list'), 
    url(r'^revistaPresei/(?P<pk>[0-9]+)/$', views.revistaPresei_detail, name='revistaPresei_detail'), 
] 

views.py

from django.shortcuts import render, get_object_or_404 
from .models import Revistapresei 

def index(request): 
    return render(request, 'blog/index.html', {}) 

def revistaPresei_list(request): 
    revistaPreseis = Revistapresei.objects.order_by('-dataArticol') 
    return render(request, 'blog/revistaPresei_list.html', {'revistaPreseis':revistaPreseis}) 

def revistaPresei_detail(request, pk): 
    revistaPresei = get_object_or_404(revistaPresei, pk=pk) 
    return render(request, 'blog/revistaPresei_detail.html', {'revistaPresei': revistaPresei}) 

revistaPresei_list.html

<html> 
    <head> 
     <title>Revista Presei List</title> 
    </head> 
<body> 

{% for revistaPresei in revistaPreseis %} 

<div> 
    <p>{{ revistaPresei.dataArticol }}/{{ revistaPresei.tipArticol }}</p> 
    <h1><a href="{% url 'revistaPresei_detail' pk=revistaPresei.pk %}">{{ revistaPresei.titlulArticol }}</a></h1> 
    <p>{{ revistaPresei.textArticol }}</p> 
</div> 

{% endfor %} 

</body> 

revistaPresei_detail.html

<html> 
    <head> 
     <title>Revista Presei Detail</title> 
    </head> 
<body> 
<div> 
    {% if revistaPresei.titlulArticol %} 
     <div> 
      {{ revistaPresei.dataArticol }}/{{ revistaPresei.tipArticol }} 
     </div> 
    {% endif %} 
    <h1>{{ revistaPresei.titlulArticol }}</h1> 
    <p>{{ revistaPresei.textArticol }}</p> 
</div> 

</body> 
</html> 

В случае, когда я пытаюсь выбрать элемент в файле - revistaPresei_list.html - я получаю ошибку:

UnboundLocalError на// 1/
локальной переменной revistaPresei «revistaPresei», на которые ссылаются до назначения ...

Ответьте мне правильный ответ в коде.

ответ

1

В вашей функции revistaPresei_detail(request, pk) у вас есть неправильный параметр в вызове revistaPresei = get_object_or_404(revistaPresei, pk=pk).

get_object_or_404 хочет присвоить имя класса первому параметру, поэтому вы должны использовать revistaPresei = get_object_or_404(Revistapresei, pk=pk) (проверьте заглавные и строчные буквы).

В данный момент вы пытаетесь использовать локальную переменную revistaPresei в качестве параметра, и это значение не существует во время вызова, которое ведет к UnboundLocalError.

+0

безупречный. большое спасибо. – Mircea

+0

@Mircea, вы можете принять ответ, если он уже совершенен в соответствии с вами ... –

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