2011-08-29 57 views
4

我想知道你們是否可以提供幫助。我試圖做它向用戶發送到客戶端創建表單一個簡單的觀點,但我不斷收到此錯誤:分配之前引用的本地變量

local variable 'form' referenced before assignment

我的代碼來看,我看不出什麼錯。

def add_client(request): 
    user = request.user 
    if request.method =='POST': 
     form = AddClientForm(request.POST) 
     if form.is_valid(): 
      client = form.save(commit=False) 
      client.save() 
      return HttpResponseRedirect('/') 
     else: 
      form = AddClientForm() 

    return render_to_response('clients/addClient.html', { 'form': form, 'user': user, }, context_instance=RequestContext(request)) 

有人告訴我我哪裏出錯了嗎?

感謝

+0

請包括完整的追溯,這將是你的問題發生的線。 –

+0

是您的代碼示例中正確的縮進嗎? – steabert

+1

固定縮進 – TheLifeOfSteve

回答

13

這是正在發生的事情:

  1. 沒有被輸入的if塊。
  2. form變量未定義。
  3. 然後嘗試引用return語句中的form變量。

至於如何解決它,這是真的讓你決定。如果請求方法不是POST,修復程序取決於您希望代碼執行的操作。

+0

好吧,我在哪裏開始解決這個問題? – TheLifeOfSteve

+0

當請求方法不是'POST'時,你想要返回什麼? –

+0

我想要做的是生成一個表格,其中用戶可以輸入信息並提交..如果用戶不滿足表格的需求,那麼不要提交表格 – TheLifeOfSteve

7

你幾乎肯定要取消縮進這一部分:

else: 
    form = AddClientForm() 

也就是說,在頁面的初始獲取,使用空白的客戶端的形式,然後在頁面張貼,使用請求POST數據填寫表單對象。

+0

謝謝,這有助於我在PyCharm中給我的同樣信息 – MichaelF

相關問題