2013-06-25 34 views
0

我已經通過了一些可能的解決方案,但沒有成功。我與estoque應用中的以下模型:Django - 全球名稱'modelo'未定義

class Produto(models.Model): 
    CAMISA = "CM" 
    QUADRO = "QD" 
    CANECA = 'CN' 
    ESCOLHAS_PRODUTO = (
     (CAMISA, 'Camisa'), 
     (QUADRO, 'Quadro'), 
     (CANECA, 'Caneca'), 
    ) 
    tipo = models.CharField(max_length = 40, 
          choices=ESCOLHAS_PRODUTO, 
          default=CAMISA) 

class Camisa(Produto): 

    # the choices here are very long, so i omitted them 

    cor = models.CharField(max_length = 40, 
            choices=CORES_CAMISA, 
            ) 
    modelo = models.CharField(max_length = 50, 
           choices=MODELO_CAMISA, 
          ) 
    tamanho= models.CharField(max_length = 50, 
           choices=TAMANHO_CAMISA, 
          ) 
    quantidade = models.IntegerField() 

    def __unicode__(self): 
     return self.modelo 

然後我有一個表格來收集一些數據,並將其保存在數據庫中。但由於它是一個庫存控制應用程序,如果記錄已經存在,我希望應用程序更新數量。如果它不存在,我希望它創建記錄。我的看法代碼如下:

def index(request): 
    # template = loader.get_template('recados/index.html') 
    produtos_estoque = Camisa.objects.all() 
    template = 'estoque/index.html' 
    if request.method == 'POST': 
     form = CamisaForm(request.POST) 
     if form.is_valid(): 
      produto_atualizar = Camisa.objects.get(modelo = request.POST[modelo], cor = request.POST[cor], tamanho = request.POST[tamanho]) 
      if produto_atualizar: 
       produto_atualizar.quantidade = request.POST[quantidade] 
      else: 
       produto_atualizar = form.save() 
      return HttpResponseRedirect('') 
    else: 
     form = CamisaForm() 
    return render_to_response(template, { 'form': form, 'produtos_estoque': produtos_estoque }, context_instance=RequestContext(request)) 

從錯誤的軌跡如下:

NameError at /estoque/ 

global name 'modelo' is not defined 

有人可以幫助我嗎?

+0

一般建議:你顯然有很好的英語技巧 - 你應該嘗試養成[用英文編碼]的習慣(http://www.codinghorror.com/blog/2009/03/the-ugly-美國-programmer.html)。 –

+0

哦,謝謝你的建議。我是巴西人,因爲我只是學習和做一些應用程序來激勵自己學習,所以我從來沒有想過這件事。但它是有道理的。 – fgalvao

回答

2

該錯誤可能是在這裏:

modelo = request.POST[modelo] 

沒有modelo變量,所以很有可能你的意思是這樣的:

modelo = request.POST['modelo'] 

這同樣適用於其他的字典訪問在該行的代碼。

+0

非常感謝,現在正在工作。 – fgalvao