我好几天都在想我的问题,我需要对此有一个全新的看法。
我正在为他的交付为客户建立一个小型应用程序。
# models.py - Clients app
class ClientPR(models.Model):
title = models.CharField(max_length=5,
choices=TITLE_LIST,
default='mr')
last_name = models.CharField(max_length=65)
first_name = models.CharField(max_length=65, verbose_name='Prénom')
frequency = WeekdayField(default=[]) # Return a CommaSeparatedIntegerField from 0 for Monday to 6 for Sunday...
[...]
# models.py - Delivery app
class Truck(models.Model):
name = models.CharField(max_length=40, verbose_name='Nom')
description = models.CharField(max_length=250, blank=True)
color = models.CharField(max_length=10,
choices=COLORS,
default='green',
unique=True,
verbose_name='Couleur Associée')
class Order(models.Model):
delivery = models.ForeignKey(OrderDelivery, verbose_name='Delivery')
client = models.ForeignKey(ClientPR)
order = models.PositiveSmallIntegerField()
class OrderDelivery(models.Model):
date = models.DateField(default=d.today())
truck = models.ForeignKey(Truck, verbose_name='Camion', unique_for_date="date")
所以我试图得到一个查询,我得到了这个:
ClientPR.objects.today().filter(order__delivery__date=date.today())
.order_by('order__delivery__truck', 'order__order')
但是,我没有做我真正想要的事情。
我希望按卡车分组客户obj(查询集)并按今天的交货单排序! 问题是,我想拥有当天的每个客户,即使他们不在交货清单和过滤器中,也不是它。
我可以使用OrderDelivery模型进行查询,但我只会获得交付的客户,而不是当天的所有客户......
也许我需要用Q对象来做?甚至原始的SQL? 也许我以错误的方式建立了我的模型关系?或者我需要降低我想做的事情......好吧,现在,我需要你的帮助才能看到新眼睛的问题!
感谢那些需要一些时间来帮助我的人。
答案 0 :(得分:0)
经过一些测试,我决定用2个查询来获得一张桌子。 一个来自OrderDelivery Queryset,用于获取由Trucks重新组合的客户端列表,另一个来自ClientPR Queryset,用于没有为其设置交付集的所有客户端。
我那样,没问题!