Джанго не фильтрует дату и время - PullRequest
0 голосов
/ 03 июня 2018

Я работаю на новостном веб-сайте, используя django, и я бы хотел, чтобы пользователи могли искать статьи по дате

Это модель статьи

class Article(models.Model):
    id=models.AutoField(primary_key=True)
    title=models.CharField(max_length=100,null=False,blank=False)
    category=models.ForeignKey(Category,null=False,blank=False)
    date=models.DateTimeField(auto_now_add=True)
    content = models.TextField(null=False, blank=False)
    resume=models.CharField(null=False,blank=False,max_length=400)

Сейчас у меня есть две статьи со следующими датами ( datetime )

2018-05-21 11: 12: 03.868542

2018-05-22 19: 02: 12.885298

Когда я запускаю это на оболочке django

articles=Article.objects.filter(date__day=21,date__month=05,date__year=2018)

, я получаю пустой набор запросов

Ответы [ 3 ]

0 голосов
/ 03 июня 2018

Запись

articles=Article.objects.filter(date__day=21,date__month=5,date__year=2018)

Используйте 5 вместо 05, в Python 3 любое целое число, предшествующее 0, является недействительным целым числом.

0 голосов
/ 06 июня 2018

Я решил проблему с помощью фильтра содержимого.

articles=Article.objects.filter(date__contains=datetime.date(2018,5,21))
0 голосов
/ 03 июня 2018

Может быть связано с часовым поясом.Может быть 2018-05-21 11:12:03 в вашей зоне на самом деле 2018-05-20 01:12:03 в GMT.Чтобы проверить, как Python интерпретирует ваш часовой пояс, прочитайте ваши объекты Article из базы данных без фильтра и запишите day и month в консоль.Тогда вы будете знать, что использовать в вашем фильтре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...