Ghe*_*Ace 8 python django postgresql orm
我有一个模型Client,我如何注释然后排序,它的两个字段的最大值:
from django.db import models
class Client(models.Model):
uploaded_photo_at = models.DateTimeField()
uploaded_document_at = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
下列:
Client.objects.annotate(
latest_activity_at=Max('uploaded_photo_at', 'uploaded_document_at', output_field=DateTimeField())
).order_by('latest_activity_at')
Run Code Online (Sandbox Code Playgroud)
引发此错误:
django.db.utils.ProgrammingError: function max(timestamp with time zone, timestamp with time zone) does not exist
LINE 1: ...oto_at", "clients_client"."uploaded_document_at", MAX("clien...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
我正在使用Posgresql和Django 1.11,如果有帮助的话.
Ghe*_*Ace 10
感谢罗伯特的回答,我能够找到GreatestDjango的课程.
以下作品:
from django.db.models.functions import Greatest
Client.objects.annotate(
latest_activity_at=Greatest('uploaded_photo_at', 'uploaded_document_at')
).order_by('latest_activity_at')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |