【问题标题】:count event by day?按天计算事件?
【发布时间】:2021-06-20 12:09:11
【问题描述】:

我需要做一个按天计算约会的计数视图,例如,如果 6 月 20 日有 4 个约会,6 月 21 日有 3 个约会。如果我在 6 月 20 日登录,它只会显示 4 个约会。

这是我目前的观点,但没有奏效

models.py

class Appointment(models.Model):
  appointment_date = models.DateField(null=True)
  appointment_time = models.TimeField(null=True)
  patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
  reseptionist = models.ForeignKey('Reseptionist', on_delete=models.SET_NULL, blank=True, null=True)
  service = models.ForeignKey('Service', on_delete=models.CASCADE)
  physician = models.ForeignKey('Physician', on_delete=models.CASCADE)

views.py

def count_appointment(request):
  appointment = Appointment.objects.filter(appointment_date__day=datetime.today().day).count()
  data = {}
  data['appointment'] = appointment
  return render(request, 'index.html', context=data)

index.html

 {{appointment}}

【问题讨论】:

  • 请分享您的模型。
  • appointment 已经是了,那你为什么要写{{appointment.count}}呢?
  • @WillemVanOnsem 添加了它
  • 模板中应该是appointment
  • @AbdulAzizBarkat 如果我删除它会给出对象 (1)、(2) 等

标签: python django django-views django-templates


【解决方案1】:

你可以这样做,

from datetime import date
def count_appointment(request):
  appointments = Appointment.objects.filter(appointment_date=date.today())
  return render(request, 'index.html', context={'appointments': appointments.count()})

在模板中,

{{appointments}}

【讨论】:

  • __day 返回月份中的某一天,也就是说,如果有 6 月 20 日、7 月 20 日和 8 月 20 日的约会,它将在 6 月 20 日返回所有这三个约会。
【解决方案2】:

您可以使用以下方式过滤:

from datetime import date

def count_appointment(request):
  appointment = Appointment.objects.filter(appointment_date=date.today()).count()
  data = {
    'appointment': appointment
  }
  return render(request, 'index.html', context=data)

这里是appointment 约会的号码。所以你渲染这个:

{{ <b>appointment</b> }}

如果要检索指定的QuerySet,则应删除.count()

from datetime import date

def count_appointment(request):
  appointments = Appointment.objects.filter(appointment_date=date.today())
  data = {
    'appointments': appointments
  }
  return render(request, 'index.html', context=data)

然后你枚举appointsments:

Number of appointments: {{ appointments|length }}
{% for appointment in appointments %}
    {{ appointment }}
{% endfor %}

【讨论】:

  • 它计算了我在数据库中的所有约会
  • 嗯,您的第一条评论说它有三个约会,根据问题应该是 7 个约会,今天四个,明天三个。
  • 是的,我想按天显示约会,所以如果我明天登录它只会给我三个
  • @Amani:你能用数据库中的数据编辑问题吗?
  • 我想让你知道它有效,问题就在我这边。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-28
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多