我有一个模特:
class MyModel(models.Model):
creation_date = models.DateTimeField(auto_now_add = True, editable=False)
class Meta:
get_latest_by = 'creation_date'
Run Code Online (Sandbox Code Playgroud)
我在视图中有一个查询,它执行以下操作:
instances = MyModel.objects.all().order_by('creation_date')
Run Code Online (Sandbox Code Playgroud)
然后我想instances.latest(),但它不会给我正确的实例,事实上它给了我第一个实例.只有当我将order_by设置为-creation_date或从查询中实际删除order_by 时才.latest()会给我正确的实例.当我使用python manage.py shell而不是在视图中手动测试时,也会发生这种情况.
所以我现在所做的是在模型的Meta我已经列出order_by = ['creation_date']并且在查询中没有使用它,这是有效的.
我本来希望.latest()总是根据(日期)(时间)字段返回最新的实例.有人能告诉我,.latest()当你order_by在查询中使用时,行为奇怪吗?