django1.8.4 模型倒序不能工作

Posted

技术标签:

【中文标题】django1.8.4 模型倒序不能工作【英文标题】:django1.8.4 models reverse order can't work 【发布时间】:2016-07-17 06:49:10 【问题描述】:

我正在使用 python2.7、django1.8.4、mysql

我尝试了以下方法: 意见:

messages=Message.objects.all().order_by('time').reverse()
messages=Message.objects.all().order_by('-time')

型号:

class Message(models.Model):
    title=models.CharField(max_length=100,blank=True)
    body=models.TextField(blank=True)
    time=models.DateField(timezone.now,blank=True,null=True)
    def __unicode__(self):
        return smart_unicode(self.title)

我使用 django shell 进行测试:

>>> from main.models import Message
>>> messages=Message.objects.all()
>>> messages

[<Message: 7ht>, <Message: >, <Message: fvdsv>, <Message: dddddddd>, <Message: dddddddd>, <Message: dddddddd>, <Message: sssssssssss>, <Message: >, <Message: >, <Message: >, <Message: >, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>]

>>> messages=Message.objects.order_by("time")
>>> messages

[<Message: 7ht>, <Message: >, <Message: fvdsv>, <Message: dddddddd>, <Message: dddddddd>, <Message: dddddddd>, <Message: sssssssssss>, <Message: >, <Message: >, <Message: >, <Message: >, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>]

>>> messages.reverse()

[<Message: 7ht>, <Message: >, <Message: fvdsv>, <Message: dddddddd>, <Message: dddddddd>, <Message: dddddddd>, <Message: sssssssssss>, <Message: >, <Message: >, <Message: >, <Message: >, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>, <Message: sssssssssss>]

【问题讨论】:

怎么不工作了?它返回的是什么?你能显示你的模型的代码吗?您在问题中遗漏了很多内容。 当你说它不起作用时,你得到的错误到底是什么? 类 Message(models.Model): title=models.CharField(max_length=100,blank=True) body=models.TextField(blank=True) time=models.DateField(timezone.now, blank=True,null=True) def __unicode__(self): return smart_unicode(self.title) 不能倒序。 【参考方案1】:

我傻了……

time=models.DateField(timezone.now,blank=True,null=True)

应该是:

time=models.DateTimeField(timezone.now,blank=True,null=True)

【讨论】:

以上是关于django1.8.4 模型倒序不能工作的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.8 和鼻子:冲突的模型?

无法在 django 1.8.4 中使用 GenericForeignKey

Django unique_together 与可为空的 ForeignKey

在搜索字段中正确使用外键引用,Django admin

Django 外键访问是如何工作的

正则表达式组倒序