Не удалось удалить start_date с помощью django queryset
Я пытаюсь удалить данные между start_date и_date с помощью django.
Вот код, который я использую:
Porfolio.objects.filter(portfolio_id=portfolio_id, date__gte=start_date, date__lte=end_date).delete()
Проблема: независимо от начальной и конечной даты я использую, начальная дата не удаляется, а все последующие периоды удаляются до конечной даты. и я уверен, что во всех случаях, которые я тестировал, у меня есть данные в начальной дате для удаления. \
дата определяется как date = models.DateField(). Я использую формат 'год-месяц-день' как строку во входных данных (expl: start_date='2022-01-01'). Никаких часов, минут или часовых поясов.\
Не могу понять, почему я получаю такое поведение.
Вам следует использовать range
lookup и Q()
objects вместе, как указано @AbdulAzizBarkat в приведенном выше комментарии так:
from django.db.models import Q
Porfolio.objects.filter(Q(portfolio_id=portfolio_id) & Q(date__range=(start_date,end_date))).delete()
Это будет работать правильно только если date
будет DateField
а не DateTimeField
согласно документации.