Как отфильтровать объекты в соответствии с выбранным месяцем в Django?

#python #django

Вопрос:

У меня есть Customer модель. У этой модели есть created_date поле.

Я хочу перечислить всех клиентов, созданных в выбранном месяце. Я думаю, что могу использовать timedelta это, но я не могу понять, как я могу это применить.

Как я могу отфильтровать клиентов в соответствии с выбранным месяцем?

views.py

 def log_records(request):
 ....
form = MyForm()
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            months = cd.get('months')

 selected_month = datetime.today() - timedelta(days=...somethin...)
 selected_month_customers = Customer.objects.filter(company=userP[0].company, created_date__gte=last_month.count()
 ...
 context = {'selected_month_customers': selected_month_customers,...}
 return render(request, 'logs.html', context)
 

models.py

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

forms.py

 class MyForm(forms.Form):
    MONTH_CHOICES = [
        ('January', 'January'),
        ('February', 'February'),
        ('March', 'March'),
        ('April', 'April'),
        ('May', 'May'),
        ('June', 'June'),
        ('July', 'July'),
        ('August', 'August'),
        ('September', 'September'),
        ('October', 'October'),
        ('November', 'November'),
        ('December', 'December'),

    ]
    months = forms.CharField(widget=forms.Select(choices=MONTH_CHOICES), label="Select a month ")
 

Ответ №1:

Попробуй сделать вот так — Customer.objects.filter(created_date__month=<month_number>)