Django计算满足外国领域条件的关系

时间:2017-11-22 13:57:29

标签: python django

我开始使用Django项目,我有四个模型,客户端,员工,booking_request,meeting_event

客户可以预订很多会议,每次会议都可能涉及很多员工。每个预订请求都分配给一个meeting_event。

我想查询一个Staff对象列表,按照他们在meeting_event中预订的客户数量排序。

目前我可以想象

Staff.objects.annotate(num_bookings=Count('bookings_with_clients')).order_by('-num_bookings')

但我无法将结果过滤到特定的meeting_event

模型如下:

客户端

Request_booking

  • client = ForeignKey(Client)
  • event = ForeignKey(MeetingEvent)
  • staff = ManytoManyField(Staff)

员工

会面活动

任何帮助将不胜感激:)

编辑: 我可以找回参与会议的工作人员,但如果他/她参与的不仅仅是预订,有些人可能不止一次。

Staff.objects.filter(request_booking_set__event=event)

所以我认为这可能有效,现在应该可以正常工作了。希望没有任何错误

Staff.objects.filter(request_booking_set__event=event).annotate(
    num_bookings=Count('code')).order_by(
    '-num_bookings')

0 个答案:

没有答案