django - Django - 如何在模板中获取长度和计数命令?(模板中的查询集)
问题描述
我有这些模块:Django 中的销售、性别和类型。
表格1:
class Sales(models.Model):
sname = models.CharField(max_length=100, default="-")
sgender = models.ForeignKey(MainGender, on_delete=models.CASCADE)
stype = models.ForeignKey(MainTypes, on_delete=models.CASCADE)
sdate = models.TextField(default="-")
+------+-----+------+------+
| name |gende| type | date |
+------+-----+------+------+
| A | 1 | 1 | 2019 |
+------+-----+------+------+
| B | 2 | 1 | 2018 |
+------+-----+------+------+
| A | 1 | 3 | 2019 |
+------+-----+------+------+
| C | 2 | 3 | 2017 |
+------+-----+------+------+
| A | 1 | 2 | 2019 |
+------+-----+------+------+
表 2(重点)
class MainGender(models.Model):
mid = models.CharField(max_length=25, default="-")
mgender = models.CharField(max_length=25, default="-")
+----+--------+
| id | gender |
+----+--------+
| 1 | Male |
+----+--------+
| 2 | Female |
+----+--------+
| 3 | - |
+----+--------+
表 3(重点)
class MainTypes(models.Model):
tid = models.CharField(max_length=50, default="-")
ttype = models.CharField(max_length=50, default="-")
+----+------+
| id | type |
+----+------+
| 1 | U1 |
+----+------+
| 2 | X2 |
+----+------+
| 3 | B1 |
+----+------+
| 4 | H3 |
+----+------+
然后,我想计算主表中的所有内容并在模板中显示如下
+---------------+---+
| Total records | 5 |
+---------------+---+
| Male | 3 |
+---------------+---+
| Female | 2 |
+---------------+---+
| Type U1 | 2 |
+---------------+---+
| Type X2 | 1 |
+---------------+---+
| Type B1 | 2 |
+---------------+---+
| Type H3 | 0 |
+---------------+---+
我只能通过下面的代码获取模板中的总记录
在views.py中
def Sale_p(request):
saless = Sale.objects.all()
return render(request, 'sale.html', {'sales':saless})
我在模板(sale.html)中尝试了这些代码
{{ sales|length }} (gives you total records in Table 1, in this example 5)
{{ sales.gender|length }} (gives nothing)
{{ sales.type|length }} (gives nothing)
{{ sales.gender_set|length }} (gives nothing)
{{ sales.type_set|length }} (gives nothing)
{{ sales.gender(1)|length }} (gives nothing)
{{ sales(gender='1')|length }} (gives nothing)
{{ sales.gender.count() }} (gives nothing)
他们没有在模板中工作。我想在记录中查看我们有多少次“男性”或“女性”或类型等等......
在模板中,sale.html
+---------------+--------------------+
| Total records | {{ sales|length }} |
+---------------+--------------------+
| Male | ? |
+---------------+--------------------+
| Female | ? |
+---------------+--------------------+
| Type U1 | ? |
+---------------+--------------------+
| Type X2 | ? |
+---------------+--------------------+
| Type B1 | ? |
+---------------+--------------------+
| Type H3 | ? |
+---------------+--------------------+
为他人获取结果的代码应该是什么?或者我应该在views.py中使用不同的方式?
解决方案
推荐阅读
- generics - .net 核心中的字典
- html - 如何更改 CSS 中的选择标签位置
- javascript - 使用订阅在我的应用程序中获取实时更新时的数据查询问题
- java - Java 中的 ArrayList.get() 函数需要 int 作为索引而不是所需的 long
- styled-components - 有没有办法使用样式组件在构建时导出语义类名?
- javascript - 如何调试在 android 移动团队应用程序的 microsoft 团队选项卡中执行的 javascript 代码?
- c++ - 如何在 C++ 中连接到服务器并通过控制台登录?
- kotlin - 如何折叠几个异步调用的结果
- django - 在 django 模型中附加 char 字段
- google-apps-script - Google 应用程序脚本 - 通过单击链接或使用弹出窗口每行发送一封电子邮件?