【问题标题】:Django - global name 'modelo' is not definedDjango - 未定义全局名称“modelo”
【发布时间】:2013-06-25 00:42:44
【问题描述】:

我已经解决了这个问题的一些可能的答案,但没有成功。我的 estoque 应用程序有以下模型:

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

有人可以帮帮我吗?

【问题讨论】:

  • 一个一般性的建议:你显然有很好的英语能力——你应该试着养成coding in English的习惯。
  • 哦,谢谢你的建议。我是巴西人,因为我只是在学习和做一些应用程序来激励自己学习,所以我从来没有想过这个。但这是有道理的。

标签: python django forms model


【解决方案1】:

错误大概在这里:

modelo = request.POST[modelo]

没有modelo 变量,所以你的意思很可能是这样的:

modelo = request.POST['modelo']

该行代码上的其他字典访问也是如此。

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 2013-07-28
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 2018-05-04
    • 2015-12-22
    相关资源
    最近更新 更多