我有这样一个模型:
class TrademarkModel(models.Model):
description = models.TextField(null=True)
created = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ("-created", )
我不想使用filter
最新的description
条目,我想将它解析到列表中,这样我就可以对xml
运行该列表并进行一些额外的计数。
我在做这样的事
result = TrademarkModel.objects.values()
list_values = [entry for entry in result]
return list_values
结果是:
[{'created': datetime.datetime(2017, 7, 24, 11, 58, 14, 30162, tzinfo=<UTC>),
u'id': 6,
'description': u'c'},
{'created': datetime.datetime(2017, 7, 24, 11, 57, 22, 674450, tzinfo=<UTC>),
u'id': 5,
'description': u'Test'},
{'created': datetime.datetime(2017, 7, 24, 11, 55, 14, 376727, tzinfo=<UTC>),
u'id': 4,
'description': u'Test'},
{'created': datetime.datetime(2017, 7, 24, 11, 32, 31, 4703, tzinfo=<UTC>),
u'id': 3,
'description': u'Non Building materials'},
{'created': datetime.datetime(2017, 7, 24, 11, 31, 35, 244154, tzinfo=<UTC>),
u'id': 2,
'description': u'Testing'},
{'created': datetime.datetime(2017, 7, 24, 7, 20, 29, 920155, tzinfo=<UTC>),
u'id': 1,
'description': u'Testing'}]
这并不理想,因为我需要对list_values
进行额外的解析,以便获得最新的条目。你知道吗
我的问题是,从description
中提取最新条目并将其解析到列表中最优雅的方法是什么?你知道吗
如果我正确理解了你的意图,理论上你也可以这样做
max(TrademarkModel.objects.values(), key=lambda d: d['created'])['description']
利用内置函数
max
中的key
关键字参数按日期排序,然后抓住description.
我对django完全不熟悉,所以我在这个意义上有偏见。我不知道values_list().latest()
在时间上是如何比较的。我还没有测试过这个代码。。。你知道吗有人建议,如果我想过滤掉
description
,我需要使用values_list,这也是从数据库返回所有条目,但这是一个例子正在返回数据库中的最新条目,因此现在可以将其解析到列表中。你知道吗
相关问题 更多 >
编程相关推荐