2014-03-13 96 views
0

我目前有一项功能,每12小时将1到4个条目写入数据库。当满足某些条件时,函数会再次被调用以基于前面的条件再写入1-4个条目。现在时间不是唯一的因素,我必须检查条件是否满足,并且因为条目都在同一个数据库中,所以我必须根据他们在数据库中发布的时间来区分它们(DateTimeField在代码中)获取最新条目django

我怎么能做到这一点? django中是否有一个我无法找到的函数?或者我不得不看看一个相当复杂的解决方案。

的素描时,我会说,我期望是这样的:

latest = [] 
allData = myManyToManyField.objects.get(externalId=2) 
for data in allData: 
    if data.Timestamp.checkIfLatest(): #checkIfLatest returns true/false 
     latest.append(data) 

甚至更​​好的是这样的(虽然我不认为这是实现千万)

latest = myManyToManyField.objects.get.latest.filter(externalId=2) 

回答

2

django文档是非常非常好,特别是在查询集和模型层功能方面。这通常是你应该看的第一个地方。这听起来像你想.latest(),但很难告诉你有关条件的要求。

latest_entry = m2mfield.objects.latest('mydatefield') 
if latest_entry.somefield: 
    # do something 

或者,也许你想:

latest_entry = m2mfield.objects.filter(somefield=True).latest('mydatefield') 

您可能也有兴趣order_by(),这将根据您指定的字段中的行排序。然后,您可以遍历所有m2m字段,直到找到与条件匹配的字段。

但没有关于这些条件是什么的更多信息,很难更具体。

+0

哦,非常感谢,这正是我一直在寻找的。我现在觉得很愚蠢...... – Jutschge

0

它只是一个想法..我们可以保持在数据库中的纪元时间(entrie)字段作为主键,并与以前的entiries比较,并diffrentiate他们