javascript - Django 模板标签,让我的列表为空,或者我没有传递任何东西
问题描述
感谢您阅读我的帖子
好的,我目前正在开发在仪表板中显示数据的 Django 项目;我设法用 Chart JS 显示和绘制图表,很好,但现在我需要限制 Django 数据库中的数量数据以显示在图表上并显示放入数据库的最新数据。
我使用 Django 内置标签显示最近的是“last”并限制显示数据,标签是“length_is”(Solve)。
这是我使用“最后”标签和索引页的 HTML 代码
<div class = "containor">
<div class = "float-right my-4 chartjs-render-monitor" id="chartContainerPH" style="width: 49%; height: 400px;display: inline-block; background-color:#FDFDFD;">
<center>
<a class="title-link" href="{%url 'ph' %}">PH:</a>
<p>{% for tank_system in tank %} {{tank_system.ph|last}} {%endfor%}</p>
</center>
{%include 'FrounterWeb/includes/PHchart.html'%}
</div>
(解决)这是我使用length_is标签的图表HTML代码
{%block PHchart%}
<canvas class = "my-4 chartjs-render-monitor" id="PHchart" ></canvas>
<script>
var ctx = document.getElementById("PHchart");
var PHchart = new Chart(ctx, {
type: 'line',
data: {
labels: [ {%for tank_system in tank%} "{{tank_system.datetime}}", {%endfor%} ], //x-Axis
datasets: [{ //y-Axis
label: 'PH1',
data: [ {%for tank_system in tank%} {{tank_system.PH|length_is:"3"}}, {%endfor%} ],
backgroundColor: "rgb(249, 24, 24,0.2)",
borderColor: "rgb(249, 24, 24,0.2)",
fill: true,
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:false
}
}]
}
}
});
</script>
</div>{%endblock%}
摘要:我无法让内置的“filter”和“length_is”( Solve ) Django 标签工作。你能和我分享一个例子或教程吗?Django 文档没有写很多例子。
这里是我的观点代码;
@login_required(login_url='/accounts/login/')
def index(request):
tank = tank_system.objects.all()
args = {'tank':tank}
return render(request,'FrounterWeb/extends/includes.html',args)
和我的模特代码;
class tank_system(models.Model):
PH = models.DecimalField(max_digits=3, decimal_places=1)
EC = models.DecimalField(max_digits=3, decimal_places=1)
WaterLevel = models.IntegerField(default=100)
TempWater = models.IntegerField(default=0)
TempRoom = models.IntegerField(default=0)
datetime = models.DateTimeField(default=timezone.now())
解决方案
这两个过滤器都在 django 文档中有详细记录。last
过滤器为您获取 a的最后一个元素,如果列表为该长度,list
则length_is
过滤器返回,否则。 True
False
这可能意味着您对代码的理解存在问题。您需要验证tank_system.PH
or的类型和值tank_system.ph
(两者都有),并且大小写很重要。一种调试方法是简单地将 的值输出tank_system.ph
到网页并验证结果。
推荐阅读
- visual-studio - SSRS 多值参数只返回最后一个值
- react-native - 每当 Array 大小增加时,React Native 都会创建新对象
- javascript - 对齐在 Javascript 中创建的 Div 中的文本和图像
- css - 使用 ACF 字段创建动态变量
- openstack - Openstack Nova - 尝试映射 cell0 时出现属性错误
- javascript - Next.JS - 数据持久化
- android - 如何在 Detox 测试中使用深度链接默认打开 android 应用程序
- sh - 如何重用大括号扩展?
- ios - 在 iOS 上配置 Firebase 时,我应该更喜欢使用 APNs 密钥还是 APNs 证书
- firebase - firebase react native expo:这些文件都不存在