我有一个字典是这样的:如何过滤基于python中的字典值的日期范围,否则按字典过滤列表?
s_dates_dict = {17: datetime.date(2009,21,9,0,24), 19: datetime.datetime(2011,12,1,19,39,16), ....}
e_dates_dict = {17: datetime.date(2010,25,9,10,24), 19: datetime.datetime(2012,1,11,17,39,16), ....}
我想用这些字典查找类型的下一个记录(A或B)日期为每条记录之后。如此看来,我想最好是去创建一个查询类似如下:
next_record_list = Tasks.objects.filter(date__range(s_dates_dict,e_dates_dict), client__in=client_list, task_type__in=[A,B])
由此字典将导致动态变化的范围内引用的PK。我没有发现任何暗示这是可能的或有效的,所以我猜测下一个最好的办法是通过消除日期范围过滤器,然后使用for语句迭代最旧值的字典并切断每个迭代的迭代来创建列表记录在dates_dict中引用的日期。但我还没有想出一个方法来做到这一点。我可以得到一些关于如何做到这一点的建议,或者完全不同的更好的方法吗?谢谢。
编辑:
client_list则是客户对象的列表。
下面是一些models.py的:
class Client(models.Model):
user_name = models.CharField
class Task(models.Model):
client = models.ForeignKey(
'Client',
)
task_type = models.ForeginKey(
'Task_Type',
)
date = models.DateTimeField(
default = datetime.now(),
blank = True,
null = True,
)
class Task_Type(models.Model):
name = models.CharField
你能解释一下你所说的“一个动态改变的参考pk范围”吗? – aganders3 2012-01-11 23:56:07
也许这是错误的术语,但我想在(2009,21,9,0,24)和(2010,25,9,10,24)之间过滤client.pk = 17的所有记录。然后对于(2011,12,1,19,39,16)和(2012,1,11,17,39,16)之间的client.pk = 19等。 – 2012-01-12 00:04:33