Django-最小值/最大值不显示在索引上

问题描述

我正在计算最小值和最大值,因此我可以显示汽车模型的RRP分布。在这里,我只有最小值,可以正确计算出最小值,但根据我从各种示例/站点获得的指导,它不会显示在索引文件中。 非常感谢您的帮助。

Models.py

class MotorMakes(models.Model):
    MotorMakeName = models.CharField(max_length=50,unique=True,default=False)
    
    def __str__(self):
        return self.MotorMakeName or ''
    
    def __unicode__(self):
        return u'%s' % (self.MotorMakeName) or ''

class MotorModelsV2(models.Model):
    MotorMakeName =  models.CharField(max_length=50,default=False,)
    MotorModelName = models.CharField(max_length=50,)
    Mkid = models.ForeignKey(MotorMakes,on_delete=models.CASCADE,default=False)
    Mlid = models.IntegerField(default=False,unique=True)
    MotorImage = models.ImageField(upload_to='Car_Pics',blank=True)
    
    def __str__(self):
        return self.MotorModelName or ''

    def __unicode__(self):
        return u'%s' % (self.MotorModelName) or ''

    class Meta:
        ordering = ('MotorMakeName',)

class MotorDetail(models.Model):
    MotorMakeName = models.CharField(max_length=50,)
    title =  models.CharField(max_length=100,)
    fuel =  models.CharField(max_length=25,)
    body = models.CharField(max_length=25,)
    engine = models.CharField(max_length=5,)
    #Mkid = models.CharField(max_length=5,)
    #Mlid =  models.CharField(max_length=5,null=True)
    Mlid = models.ForeignKey(MotorModelsV2,null=True)
    RRP = models.DecimalField(max_digits=10,decimal_places=2,default ='0' )
    MotorImage = models.ImageField(upload_to='Car_Pics',blank=True)

    def __str__(self):
        #return self.title or ''
        return '%s %s %s' % (self.MotorMakeName,self.MotorModelName,self.title,) or ''

    def __unicode__(self):
        return u'%s' % (self.title) or ''

    class Meta:
        ordering = ('MotorMakeName',)

View.py

def SearchInventory(request):
    if request.method=='GET':
        inputvalue = request.GET['modelselection']
        print(inputvalue)
        DisplayInventory = GarageInventory.objects.all().filter(ListModel=inputvalue) #join to MotorDetails with Title and Body to get the image,as well as the RRP,then just output this to html 
        DisplayImage = MotorModelsV2.objects.all().filter(MotorModelName=inputvalue)
        DisplayRRP=MotorDetail.objects.all().filter(MotorModelName=inputvalue).aggregate(Min('RRP'))
    else:
        DisplayInventory = GarageInventory.objects.all()

    return render(request,'search_results.html',{'GarageInventoryView':DisplayInventory,'ImageView':DisplayImage,'RRPView': DisplayRRP })

Index.html

{% for inv in  GarageInventoryView %}
                    <tbody class = "table table-hover">
                         <tr align="center">   
                            <td align="center">{{inv.GarageID}}</td>
                            <td align="center">{{inv.ListModel}}</td>
                            <td align="center">{{inv.ListMake}}</td>
                            <td align="center">{{inv.Title}}</td>
                            <td align="center">{{inv.Year}}</td>
                            <td align="center">{{inv.BodyType}}</td>
                            <td align="center">{{inv.GaragePrice}}</td>
                    
                            <td align="center">Base RRP is {{ RRP__min}}</td>
                    
                            
                    {% for imgs in ImageView %}
                            <td> <img src="{{ imgs.MotorImage.url }}" alt="{{inv.ListModel}} image",height="75",width="120" /></td>
                    {% endfor %}
                         </tr>
                 {% endfor %}
                    </tbody>  

解决方法

在您的views.py中,您在上下文字典中将汇总结果的键定义为 RRPView

return render(request,'search_results.html',{'GarageInventoryView':DisplayInventory,'ImageView':DisplayImage,'RRPView': DisplayRRP })

但是,当您尝试访问模板中的合计值时,您尝试访问的是合计值的默认名称(RRP__min),而不是存储在上下文中的键:

<td align="center">Base RRP is {{ RRP__min}}</td>

将该行更改为:

<td align="center">Base RRP is {{ RRPView.RRP__min }}</td>

您的上下文字典包含一个称为RRPView的键; RRPView的值是Aggregate函数返回的字典。在那个词典中,是密钥RRP__min,它把合计的结果作为值保存。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...