UnboundLocalError:赋值前引用的局部变量

时间:2012-11-27 03:23:07

标签: python google-app-engine

我正在尝试创建一个用户可以插入信息的简单表单。如果用户单击“发送”按钮,将显示信息。

以下是views.py。

中的代码
from kay.utils import render_to_response
from myapp.form import ContactForm
from myapp.models import NhanThu
# Create your views here.
@login_required
def index(request):
    form_test = ContactForm()
    if request.method =="POST" and form_test.validate(request.form):
        NhanthuModelbien = NhanThu(subject=ContactForm['subject'])
        NhanthuModelbien.put()
        return redirect(url_for('myapp/index'))


    query = NhanthuModelbien.all().order('-created')
    inthuwhat = query.fetch(20)    
    return render_to_response('myapp/index.html',
                              {'form2': form_test.as_widget(),'inthura': inthuwhat})

我总是收到这个错误“UnboundLocalError:在赋值之前引用的局部变量'NhanthuModelbien'”。 任何人都可以指出这里有什么问题吗?

1 个答案:

答案 0 :(得分:4)

如果条件request.method =="POST" and form_test.validate(request.form)为假,则变量不会被初始化。然后在初始化查询query = NhanthuModelbien.all().order('-created')时尝试使用它。

只需声明它并将其初始化为if之前的默认值。