Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对包含多对多字段的对象进行排序,这些字段需要在Django中预先排序_Python_Django_Django Models - Fatal编程技术网

Python 对包含多对多字段的对象进行排序,这些字段需要在Django中预先排序

Python 对包含多对多字段的对象进行排序,这些字段需要在Django中预先排序,python,django,django-models,Python,Django,Django Models,我有以下两种型号: class Message(models.Model): content = models.TextField() timestamp = models.DateTimeField(auto_now_add=True) class Chat(models.Model): title = models.CharField(max_length=255) messages = models.ManyToManyField('Message')

我有以下两种型号:

class Message(models.Model):
    content = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)

class Chat(models.Model):
    title = models.CharField(max_length=255)
    messages = models.ManyToManyField('Message')

如何按每次聊天中的最后一条发送消息对聊天进行排序?

您可以按相关
消息的最后(最大)
时间戳对
聊天对象进行排序,方法是:

from django.db.models import Max

Chat.objects.annotate(
    last_message=Max('messages__timestamp')
).order_by('-last_message')
从django.db.models导入最大值
Chat.objects.annotate(
last_message=Max('messages__timestamp')
).order_by(“-最后一条消息”)