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')