簡體   English   中英

UnboundLocalError,分配前訪問了局部變量,但不是嗎?

[英]UnboundLocalError, local variable accessed before assignment, but not?

我正在Django中做一些非常簡單的事情,並且遇到了這個非常奇怪的錯誤:

UnboundLocalError at /me/profile/edit/
local variable 'form' referenced before assignment

這是我的代碼:

if request.method == "POST":
    form = MyForm(request.POST)
    if form.is_valid():
        print "Yes"
else:
    form = MyForm(user=request.user)

為什么這段代碼會引發該錯誤? 這很簡單,但是如果我取出if form.is_valid()東西,它就可以工作。 怎么了

解決此問題的最簡單方法是刪除else子句:

form = MyForm(request.POST or None)

if request.method == 'POST':
    if form.is_valid():
        print 'Yes'

丹尼·格林菲爾德(Danny Greenfeld)的“高級Django表單用法”演示文稿就是一個很好的例子: http : //www.slideshare.net/pydanny/advanced-django-forms-usage (幻燈片33是我具體指的)。

如前所述,代碼看起來是正確的,因此我希望在發布問題時會丟失一些內容(也許第二個if語句並未真正縮進)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM