Django: добавление нового столбца функцией ( datetimefield в datefield )

Измените поле datetimefield на поле даты и поместите его в новый столбец

python способы бесполезны, потому что я хочу иметь возможность использовать order_by и distinct
. я не хочу использовать sorted() и т.д.

моя модель django выглядит примерно так

class Product(models.Model):
    price = models.PositiveIntegerField(null=False, default=0)
    discounted_price = models.PositiveIntegerField(null=False, default=0)
    date = models.DateTimeField(auto_now_add=True)

И я хочу иметь возможность вызвать функцию date()
и поместить его в другой столбец и order_by его

Product.objects.annotate(day=date.date()).order_by('-day').distinct('day')

Вы можете сделать что-то вроде этого

Product.objects.annotate(date__date=date.date()).order_by('-date').distinct('date')

ознакомьтесь с doc. для получения дополнительной информации

После долгих поисков я нашел ответ

from django.db.models.functions import TruncDate

Product.objects.annotate(day=TruncDate('date')).order_by('-day').distinct('day')
Вернуться на верх