【发布时间】:2020-11-25 17:36:11
【问题描述】:
我在 django 订购方面遇到了奇怪的问题。由于某种原因,我无法按多个字段对列表视图进行排序。
这是我的课。
class Syslog(models.Model):
receivedat = models.DateTimeField(default=timezone.now)
facility = models.PositiveSmallIntegerField()
priority = models.PositiveSmallIntegerField()
fromHost = models.CharField(max_length=50)
message = models.TextField(max_length=500)
class Meta:
ordering = ['id','receivedat', 'fromHost']
这也是我的视图类:
class HomePageView(ListView):
model = Syslog
template_name = 'home.html'
context_object_name = 'all_logs'
paginate_by = 10
ordering = ['-id', 'receivedat', 'fromHost']
当指定ordering 中的单个字段时(例如ordering = ['-id']),但当我添加第二个或第三个参数时,一切都恢复为默认值(只有第一个排序字段被识别)
有人遇到过类似的问题吗?
同样的问题也存在于 Django shell 中。当我执行以下查询 Syslog.objects.all().order_by('id') 时,一切看起来都不错,但是当我向 order_by 添加另一个字段(例如 Syslog.objects.all().order_by('id','fromHost'))时,第二个字段根本无法识别。
问候, 约旦
【问题讨论】:
标签: django orm sql-order-by