Javascript 在模板中提取Django模型特征的最小值和最大值
我有一个这样的模型:Javascript 在模板中提取Django模型特征的最小值和最大值,javascript,django,Javascript,Django,我有一个这样的模型: class Integer(models.Model): integer_value = models.IntegerField(default=0) current_price = models.DecimalField(max_digits=5, decimal_places=2, default=0.00) share = models.IntegerField(default=0) market = models.ForeignKey
class Integer(models.Model):
integer_value = models.IntegerField(default=0)
current_price = models.DecimalField(max_digits=5, decimal_places=2, default=0.00)
share = models.IntegerField(default=0)
market = models.ForeignKey(
IntegerMarket,
on_delete=models.CASCADE,
related_name='integers',
default=None)
def __str__(self):
return str(self.integer_value)
class Meta:
ordering = ['integer_value']
我正在使用以下视图:
class IntegerMarketDetailView(LoginRequiredMixin, DetailView):
model = IntegerMarket
template_name = 'integer_market_detail.html'
login_url = 'login'
在我的模板中,对于给定的IntegerMarket
,我想提取integer\u value
的最小值和最大值,以便在JavaScript中定义轴的最小值和最大值
例如,我可能有一个IntegerMarket
的实例,它有五个整数
,分别是整数值
1到5。然后我想提取1作为最小值,5作为最大值
最简单的方法是什么?Django提供了在查询中定义的最大值和最小值 从django.db.models导入最大值、最小值 然后,在定义查询时,您将有如下内容
my\u query=models.IntegerMarket.objects.all().annotate(max\u integer=max('integer\u value')).annotate(min\u integer=min('integer\u value'))
然后,您可以在视图中使用max\u integer/min\u integer或任何您命名的名称来调用这些值。Django提供了要在查询中定义的max和min值 从django.db.models导入最大值、最小值 然后,在定义查询时,您将有如下内容
my\u query=models.IntegerMarket.objects.all().annotate(max\u integer=max('integer\u value')).annotate(min\u integer=min('integer\u value'))
然后,您可以使用max\u integer/min\u integer或您命名的任何名称在视图中调用这些值。给定
IntegerMarket
的integer\u market
实例,您可以使用.integers
获得所有相关的integer
实例,因为您很好地将其设置为related\u name
现在,您可以使用Max
和Min
进行聚合
from django.db.models import Max, Min
integer_market.integers.aggregate(Max('integer_value'), Min('integer_value'))
>> {'integer_value__max': 10, 'integer_value__min': 0}
给定
IntegerMarket
的integer\u market
实例,您可以使用.integers
获取所有相关的integer
实例,因为您很好地将其设置为相关的\u name
现在,您可以使用Max
和Min
进行聚合
from django.db.models import Max, Min
integer_market.integers.aggregate(Max('integer_value'), Min('integer_value'))
>> {'integer_value__max': 10, 'integer_value__min': 0}
此模板是用于Integer的单个实例的详细信息,还是用于许多实例的列表?你用的是什么样的视角?谢谢,丹尼尔罗斯曼。该模板用于
IntegerMarket
的实例。IntegerMarket
的每个实例都将有多个与之关联的Integer
(即,integers
,根据相关名称)。我在原来的帖子中添加了视图。这个模板是针对Integer的单个实例的详细信息,还是针对多个实例的列表?你用的是什么样的视角?谢谢,丹尼尔罗斯曼。该模板用于IntegerMarket
的实例。IntegerMarket
的每个实例都将有多个与之关联的Integer
(即,integers
,根据相关名称)。我在原始帖子中添加了视图。谢谢,dirkgroten!但是有没有一种方法可以把它作为(比如)10而不是模板端的{'integer\u value\uu max':10}
?这样,我可以使用双大括号将其直接输入javascript。这就是我显示的重新返回值。这是一个带有键integer\u value\u max
和integer\u value\u min
的字典,因此如果您将其作为上下文变量v
传递给模板,您可以使用{v.integer\u value\u max}
在HTML文件中包含该值。谢谢,DirkRoten!但是有没有一种方法可以把它作为(比如)10而不是模板端的{'integer\u value\uu max':10}
?这样,我可以使用双大括号将其直接输入javascript。这就是我显示的重新返回值。它是一个带有键integer\u value\uu max
和integer\u value\uu min
的字典,因此如果您将其作为上下文变量v
传递给模板,您可以使用{v.integer\u value\uu max}
将值保存在HTML文件中。