Django错误:视图中的UnboundLocalError

0 投票
1 回答
2141 浏览
提问于 2025-04-17 22:55

这件事让我很困惑,大家帮帮我吧。

UnboundLocalError at /addauthor
local variable 'form' referenced before assignment
Request Method: POST
Request URL:    http://127.0.0.1:8000/addauthor
Django Version: 1.4
Exception Type: UnboundLocalError
Exception Value:    
local variable 'form' referenced before assignment
Exception Location: C:\Users\Nir\desktop\club\blog\views.py in addauthorView, line 8
Python Executable:  C:\Python27\python.exe
Python Version: 2.7.6

这是我的views.py文件:

from django.shortcuts import render
from blog.forms import ContactForm
from django.http import HttpResponseRedirect

def addauthorView(request):
     if request.method == 'POST':
     f = ContactForm(request.POST)
     if form.is_valid():
          first_name = form.cleaned_data['firstname']
          last_name = form.cleaned_data['lastname']
          user_email = form.cleaned_data['email']
          c = Contact(firstname=first_name, lastname=last_name, email=user_email)
          c.save()
          return HttpResponseRedirect('thanks/')
     else:
          form = ContactForm(request.POST)
          return render(request, 'addauthor.html', {'form': ContactForm})
else:
    return render(request, 'addauthor.html', {'form': ContactForm})


def thanksView(request):
    return render(request, 'thanks.html')

我可以根据要求在我的Django项目中发布其他内容,但似乎问题出在views上,我不知道为什么。

1 个回答

3

你在使用一个叫做 form 的变量,但这个变量并没有被定义。你需要把:

f = ContactForm(request.POST)

换成:

form = ContactForm(request.POST)

撰写回答