Поле даты Django, полученное из поля метки времени

У меня есть поле created_date:

class Comment(models.Model):
    created_date = models.DateTimeField(auto_now_add=True)

Я хочу, чтобы поле, производное от created_date, идеально существовало в модели. Я знаю, что в SQL я могу сделать:

SELECT created_date::date
FROM Comment

Как бы я определил это в модели Django?

Обновлено: created_date - это всего лишь пример, поэтому я не могу использовать date.today() из модуля datetime. Также обратите внимание, что конечная цель состоит в том, чтобы сделать слаг с несколькими различными полями, включающими желаемое поле «date_only».

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать Поиск __date [Django-doc] при фильтрации или в F-выражении, или для более старых версий Django вы можете использовать Функция TruncDate [Django-doc].

Таким образом, вы можете, например, отфильтровать Comments для определенной даты с помощью:

from datetime import date

Comment.objects.filter(created_date__date=date(2022, 4, 9))

Однако использование …_date не имеет большого смысла: это объект datetime, поэтому имя вашего поля намекает, что это DateField, возможно, лучше использовать created или created_timestamp.

В конечном счете, я хочу, чтобы это было в модели, а не как поиск впоследствии. В идеале, чтобы я мог просматривать на странице администратора или создавать поле slug. Возможно ли это с вашим решением?

noblerthanoedipus 09.04.2022 20:11

@noblertanoedipus: created_date — это объект datetime, поэтому вы можете использовать mycomment.created_date.year для получения года или mycomment.created_date.date() для получения объекта date.

Willem Van Onsem 09.04.2022 20:12

Другие вопросы по теме