django - 在 django 中查询?
问题描述
我正在尝试实现查询,但我无法做到。
我在这里有 3 个实体:
客户:
class Client(LogsMixin, models.Model):
"""Model definition for Client."""
company_name = models.CharField("Nombre de la empresa", max_length=150, default="Nombre de empresa", null=False, blank=False)
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
培训班:
class Course(LogsMixin, models.Model):
"""Definición del modelo de Proveedor."""
name = models.CharField("Nombre del curso", null=False, default="", max_length=200)
消耗:
class Consumption(LogsMixin, models.Model):
"""Definición del modelo de Consumos"""
client = models.ForeignKey('authentication.Client', verbose_name=("Cliente"), null=True, default=None, on_delete=models.SET_DEFAULT)
course = models.ForeignKey(Course, verbose_name=("Curso"), null=True, default=None, on_delete=models.SET_DEFAULT)
我想为访问该页面的客户获取 10 个最畅销的课程列表。我想向客户展示课程的名称以及他对该课程的消费次数。在每次消费中,都有一个课程和一个客户相关联。
有人可以帮我一把吗?
解决方案
未经测试:
视图.py
def my_view_function(request):
# 10 courses with the most consumptions fromt that client:
courses = Course.objects.filter(
consumption_set__client = request.user.client
).order_by(
'consumption_set__count'
)[0:10]
return render(request, 'template.html', {'courses' : courses})
模板.html
{% for course in courses %}
<div> Course Name: {{ course.name }} </div>
<div> Number of Consumptions {{ course.consumption_set.count }} </div>
{% endfor %}
推荐阅读
- python - JSON对象列上的PostgreSQL JOIN
- c# - unity 2D 的物理运动
- kubernetes - Kubernetes 仪表板中的聚合信息是否在 CLI 中可用?还是通过 API?
- python - 如何在不搞砸一切的情况下迁移 heroku flask 应用程序?
- sql - ms 访问中的 ms 访问“LIKE”运算符在 vb.net 中不起作用
- scala - Play Framework:限制并发请求数
- node.js - nodejs Keycloak适配器强制redirect_uri与ssl
- c++ - 如何创建具有非线性比例的 QSlider?
- python - 如何使用python在bigquery中将分区从一个表复制到另一个表
- python - MariDb 错误 %d 格式:需要一个数字,而不是字节。但据我所知,一切都是类型转换的。尝试打印变量,它们没问题