如何计算填充在特定id中的数据字段,实现';计数';python django中excel中的行数据公式?

如何计算填充在特定id中的数据字段,实现';计数';python django中excel中的行数据公式?,python,django,excel,pandas,count,Python,Django,Excel,Pandas,Count,型号.py class Quality_Model(models.Model): name = models.ForeignKey(Members, blank=True, null=True, on_delete=models.CASCADE) year = models.IntegerField(default=0,blank=True) jan = models.DecimalField(max_digits = 5, decimal_places = 2, def

型号.py

class Quality_Model(models.Model):
    name = models.ForeignKey(Members, blank=True, null=True, on_delete=models.CASCADE)
    year = models.IntegerField(default=0,blank=True)
    jan = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    feb = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    mar = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    apr = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    mei = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    june = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    july = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    ags = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    sept = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    oct = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    nov = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    des = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    avg = models.DecimalField(max_digits = 5,decimal_places = 2,default=Decimal(0),blank=True,null=True)
@login_required(login_url = settings.LOGIN_URL)
def add_quality(request):
    if request.method == 'POST':
        form_data = request.POST
        form = QualityForm(form_data)
        if form.is_valid():
            average_value = round((float(request.POST['jan'])+float(request.POST['feb'])+float(request.POST['mar'])+float(request.POST['apr'])+float(request.POST['mei'])+float(request.POST['june'])+float(request.POST['july'])+float(request.POST['ags'])+float(request.POST['sept'])+float(request.POST['oct'])+float(request.POST['nov'])+float(request.POST['des']))/12,2)
            qualityinsform = Quality_Model(
                name = Members.objects.get(pk=request.POST['name']),
                year = request.POST['year'],
                jan = request.POST['jan'],
                feb = request.POST['feb'],
                mar = request.POST['mar'],
                apr = request.POST['apr'],
                mei = request.POST['mei'],
                june = request.POST['june'],
                july = request.POST['july'],
                ags = request.POST['ags'],
                sept = request.POST['sept'],
                oct = request.POST['oct'],
                nov = request.POST['nov'],
                des = request.POST['des'],
                avg = average_value
            )
            qualityinsform.save()
            return redirect('/quality-value/')
    else:
        form = QualityForm()

    return render(request, 'add_quality.html', {'form':form})
视图.py

class Quality_Model(models.Model):
    name = models.ForeignKey(Members, blank=True, null=True, on_delete=models.CASCADE)
    year = models.IntegerField(default=0,blank=True)
    jan = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    feb = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    mar = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    apr = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    mei = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    june = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    july = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    ags = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    sept = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    oct = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    nov = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    des = models.DecimalField(max_digits = 5, decimal_places = 2, default=Decimal(0), blank = True, null=True)
    avg = models.DecimalField(max_digits = 5,decimal_places = 2,default=Decimal(0),blank=True,null=True)
@login_required(login_url = settings.LOGIN_URL)
def add_quality(request):
    if request.method == 'POST':
        form_data = request.POST
        form = QualityForm(form_data)
        if form.is_valid():
            average_value = round((float(request.POST['jan'])+float(request.POST['feb'])+float(request.POST['mar'])+float(request.POST['apr'])+float(request.POST['mei'])+float(request.POST['june'])+float(request.POST['july'])+float(request.POST['ags'])+float(request.POST['sept'])+float(request.POST['oct'])+float(request.POST['nov'])+float(request.POST['des']))/12,2)
            qualityinsform = Quality_Model(
                name = Members.objects.get(pk=request.POST['name']),
                year = request.POST['year'],
                jan = request.POST['jan'],
                feb = request.POST['feb'],
                mar = request.POST['mar'],
                apr = request.POST['apr'],
                mei = request.POST['mei'],
                june = request.POST['june'],
                july = request.POST['july'],
                ags = request.POST['ags'],
                sept = request.POST['sept'],
                oct = request.POST['oct'],
                nov = request.POST['nov'],
                des = request.POST['des'],
                avg = average_value
            )
            qualityinsform.save()
            return redirect('/quality-value/')
    else:
        form = QualityForm()

    return render(request, 'add_quality.html', {'form':form})
根据我在上面创建的代码,在views.py文件中,我所能做的就是显示12个月分母的平均值。同时,我想要的条件是根据月数计算分母,每个月包含最小值0,以便将其计为分母

之后,未填写的月表(空白或空)将不作为分母计算。因此,将要计算的平均值基于其值填充为0-100的月份的值。如果在上图中显示的excel上下文中,“计数”公式将计算选定的列,该列的单元格中有一个值。因此,如果单元格为空白或已填充,则计算的平均值将存在差异。如果输入为12个月,分母将为12,如果在一行中仅输入10个月,则分母为10,依此类推。也许你们有办法解决我的问题