如何解决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,它把合计的结果作为值保存。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。