2016-08-22 36 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在/ revistaPresei/1/
局部變量'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,你可能想接受答案,如果它已經是完美的根據你... –