相关疑难解决方法(0)

使用.order_by()和.latest()的Django查询

我有一个模特:

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在查询中使用时,行为奇怪吗?

python django sql-order-by

39
推荐指数
2
解决办法
7万
查看次数

标签 统计

django ×1

python ×1

sql-order-by ×1