全局名称'estadis'未定义

时间:2017-03-16 02:34:49

标签: python django

views.py:

@login_required
def ListEspeci(request, id_especialidad):
  especialidad = Especialidad.objects.get(id=id_especialidad) 

  if request.method == 'GET':
    if estadis ==  Especialidad.objects.filter(estadistica=0):
      form = EstadisticaForm(request.POST, instance=especialidad)

      if form.is_valid():
        form.save()

      return HttpResponseRedirect('/solicitar/lista/%s/' % id_especialidad)

    return render(request, 'estadis.html', {'form':form})
    if estadis ==  Especialidad.objects.filter(estadistica > 0):
    pedido = Pedido.objects.filter(especialidad=especialidad)

    return render(request, 'index2.html', {'pedido':pedido, 'especialidad':especialidad})

models.py:

class Especialidad(models.Model):
nombre        = models.CharField(max_length=50, blank=True)
estadistica   = models.IntegerField(blank=True)
encargado     = models.ForeignKey('Encargado', blank=True, on_delete=models.CASCADE)

首先我捕获了专业模型的id,然后我相信条件if,如果专业的统计字段等于0,它会向我发送模型形式的模板以输入数量,否则它将模板传递给表。

也许我没有为所需的逻辑做好准备,有些帮助吗?请

2 个答案:

答案 0 :(得分:1)

你的if语句只有一个等于而不是一个double,并且缺少一个冒号:

if estadis =  Especialidad.objects.filter(estadistica=0)

if estadis == Especialidad.objects.filter(estadistica=0):

答案 1 :(得分:-1)

您的代码似乎有两个问题 -

  1. 缩进:在Python中,代码块是基于缩进识别的,因此它们应该是一致的。你似乎对不同的块有不同的缩进(第一行#221,双空格和制表空间的单个空格),函数声明后没有缩进。您可以在任何地方使用制表符缩进。

  2. python中的语句用'开始一个新的块:'在结尾处,下一行是缩进的。所以在你的情况下if语句将需要':'最后。