gpt4 book ai didi

python - 在 django 项目中显示来自 views.py 的表格

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:28 25 4
gpt4 key购买 nike

<table class="table">
<thead>
<tr>
<th>School</th>
<th>Strength</th>
<th>Average</th>
</tr>
</thead>
<tbody>
{% for school in cluster.school_set.all %}
<tr>
<td><a href="{% url 'data:school_detail' state.id region.id cluster.id school.id %}">{{ school.school_name }}</a></td>
<td>{{ school.strength }}</td>
<td>school average</td>
</tr>
{% endfor %}
</tbody>
</table>

这是我模板中的表格,它以表格形式显示集群(城镇/城市)中所有学校的详细信息,列为 1) 学校名称 2) 学校实力 3) 一定数量考试的学校平均分数.我可以轻松获取列 1) 学校名称和 2) 学校强度的数据,因为它们只是类(class)学校的字段。问题在于列平均值。为了获得平均值,我需要有一些我不能直接在模板中执行的代码行。问题是我也不知道如何在 views.py 中做到这一点。计算我需要 school.id 但从 url 我只得到 cluster.id如果您不能简单地从 views.py 中获取数据而不从模板中提供值,那么在这些情况下该怎么办?

set = Average.objects.filter(school=school.id):
obj = set.latest('average_date')
avg = obj.average_value

这些是我需要获得特定学校平均数的代码行。

class School(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE)
region = ChainedForeignKey(Region, chained_field="state",chained_model_field="state", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
cluster = ChainedForeignKey(Cluster, chained_field="region",chained_model_field="region", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
school_name = models.CharField(max_length=250)
facilitator = models.CharField(max_length=250)
f_number = models.IntegerField()
f_email = models.EmailField()
school_logo = models.FileField(default='')
strength = models.IntegerField()

def __str__(self):
return self.school_name


class Avergae(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE)
region = ChainedForeignKey(Region, chained_field="state",chained_model_field="state", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
cluster = ChainedForeignKey(Cluster, chained_field="region",chained_model_field="region", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
school = ChainedForeignKey(School, chained_field="cluster",chained_model_field="cluster", show_all=False, auto_choose=True, sort=False, on_delete=models.CASCADE)
average_date = models.DateField()
average_value = models.DecimalField(max_digits=4, decimal_places=2)
average_attendance = models.IntegerField()
average_note = models.CharField(max_length=250)

def __str__(self):
return '{}: {}'.format(self.average_date, self.average_value)

这些是我的学校和普通模型

最佳答案

在您的 School 模型中,您可以编写方法 get_average:

class School(models.Model):
# other fields
def get_average(self):
return self.avergae_set.latest('average_date').average_value

然后在模板中你可以这样做:

{{ school.get_average }}

注意:您的 Average 型号名称拼写错误,您使用的是 Avergae 而不是 Average

关于python - 在 django 项目中显示来自 views.py 的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46384917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com