Sælir,
Er að reyna að útbúa einfalt html form með django. Fæ radio hnappana
og get valið og fæ útkomu en þegar ég sleppi að velja útvarpshnapp
og smelli á Kjósa kemur þessi villa vegna Error handlersins:
global name 'Choice' is not defined
Svona er hluti af tracebackinu:
Django Version: 1.4.1
Exception Type: NameError
Exception Value:
global name 'Choice' is not defined
Exception Location:
/home/siggi/Dropbox/programming/python/django/mysite/polls/views.py
in vote, line 25
Er búinn að gúgla töluvert og ekkert hittir á sömu villu, getur
verið syntax villa, er algjör noob.
Views.py lítur svona út:
from django.shortcuts import render, get_object_or_404
from polls.models import Poll
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
context = {'latest_poll_list': latest_poll_list}
return render(request, 'polls/index.html', context)
def detail(request, poll_id):
poll = get_object_or_404(Poll, pk=poll_id)
return render(request, 'polls/detail.html', {'poll': poll})
def results(request, poll_id):
poll = get_object_or_404(Poll, pk=poll_id)
return render(request, 'polls/results.html', {'poll': poll})
def vote(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
try:
selected_choice =
p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the poll voting form.
return render(request, 'polls/detail.html', {
'poll': p,
'error_message': "You didn't select a choice.",
})
else:
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully
dealing
# with POST data. This prevents data from being posted twice
if a
# user hits the Back button.
return HttpResponseRedirect(reverse('polls:results',
args=(
p.id,)))