Angularjs 按日期对联系人进行自定义筛选-django rest框架

Angularjs 按日期对联系人进行自定义筛选-django rest框架,angularjs,django,django-rest-framework,Angularjs,Django,Django Rest Framework,我有一个表,其中显示有关组织的信息,我有一个机制,触发组织上的下一个操作日期,这是在组织上手动设置的。 现在,我在表的顶部添加了一个自定义datepicker字段,这样我就可以筛选出想要的日期,并在选定的日期显示该组织的所有下一个操作日期,所以我将向Controller传递一个值,这样我就可以捕获restAPI,在剩下的时间里,我想筛选出比现在更早或相等的日期,这样我就可以在下一个行动日期前显示组织。 我的问题是如何过滤日期早于或等于现在,我在这里真的迷路了,所以有人可以帮助我,并解释如何在Mo

我有一个表,其中显示有关组织的信息,我有一个机制,触发组织上的下一个操作日期,这是在组织上手动设置的。 现在,我在表的顶部添加了一个自定义datepicker字段,这样我就可以筛选出想要的日期,并在选定的日期显示该组织的所有下一个操作日期,所以我将向Controller传递一个值,这样我就可以捕获restAPI,在剩下的时间里,我想筛选出比现在更早或相等的日期,这样我就可以在下一个行动日期前显示组织。 我的问题是如何过滤日期早于或等于现在,我在这里真的迷路了,所以有人可以帮助我,并解释如何在ModelViewSet中做到这一点

模型视图集:

from rest_framework import viewsets, permissions, filters

from cms.restapi.pagination import StandardResultsOffsetPagination
from cms_sales.models import LeadContact
from cms_sales.restapi.permissions.lead_contact_permissions import LeadContactPermissions
from cms_sales.restapi.serializers.lead_contact_serializer import LeadContactSerializer


class LeadContactViewSet(viewsets.ModelViewSet):
    def get_queryset(self):
        queryset = LeadContact.objects.none()
        user = self.request.user
        if user.has_perm('vinclucms_sales.can_view_full_lead_contact_list'):
            queryset = LeadContact.objects.all()
        elif user.has_perm('vinclucms_sales.can_view_lead_contact'):
            queryset = LeadContact.objects.filter(account_handler=user)
        return queryset

    serializer_class = LeadContactSerializer

    filter_backends = (filters.DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)

    filter_fields = ('account_handler',)

    ordering_fields = (
        'first_name', 'last_name', 'account_handler__first_name', 'account_handler__last_name',
        'sub_organization_name', 'organization_name', 'next_action_date', 'serial_number',
        'next_action_date', 'status_text', 'select_date')

    search_fields = (
        'first_name', 'last_name', 'account_handler__first_name', 'account_handler__last_name',
        'sub_organization_name', 'organization_name', 'next_action_date', 'serial_number',
        'next_action_date', 'status_text', 'select_date')

    pagination_class = StandardResultsOffsetPagination

    permission_classes = [permissions.IsAuthenticated, LeadContactPermissions]
我通过日期选择器字段的位置:

模板:

{% extends "site_base.html" %}
{% load i18n static %}

{% block head_title %}Lead contact list{% endblock %}

{% block ng_app %}cms.sales{% endblock %}

{% block body %}
    <div class="grid">
        <div class="row">
            <h2 class="align-center">
                <strong>
                    {% trans "Contact leads List" %}
                </strong>
            </h2>
        </div>
    </div>
    <div class="flex-grid"
         ng-controller="LeadContactListCtrl"
         ng-init="init()">
        <div class="row">
            <div class="cell size-p20 padding10">
                <label for="id_select_date">Select Date: *</label>
                <div class="full-size">
                    <div class="input-control full-size text"
                    data-role="datepicker" date-format="mmmm d, yyyy">
                        <input id="id_select_date" ng-model="lead_contact.select_date"/>
                        <button class="button"><span class="mif-calendar"></span></button>
                    </div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="cell size-p20 padding10">
                <button class="button primary" ng-click="SelectLeadContacts()">
                    {% trans "Submit" %}
                </button>
            </div>
        </div>
        <div class="row">
            <div class="cell size-p100 padding10">
                <table title="Contact leads List" class="dataTable" id="contactLeadsList">
                    <thead>
                    <tr>
                        <th>{% trans 'Serial Number' %}</th>
                        <th>{% trans 'Lead name' %}</th>
                        <th>{% trans 'Organization' %}</th>
                        <th>{% trans 'Sub-organization' %}</th>
                        <th>{% trans 'Handler' %}</th>
                        <th>{% trans 'Sale status' %}</th>
                        <th>{% trans 'Next communication date' %}</th>
                    </tr>
                    </thead>
                </table>
            </div>
        </div>
    </div>
{% endblock %}

我不确定我是否完全理解了您的要求,但要过滤查询集以仅显示具有未来下一个动作日期的对象,您可以使用:

import datetime
LeadContact.objects.filter(next_action_date__gte=datetime.date.today())
并仅显示具有过去使用日期的日期:

LeadContact.objects.filter(next_action_date__lte=datetime.date.today())

有关按日期筛选查询集的更详细指南,请参阅。特别是,如果下一个_action_date字段的类型是datetime,请使用datetime.datetime.now而不是datetime.date.today。更多信息请参见。

好的,谢谢,目前为止,我已经发现lte和gte将帮助我做到这一点,不过我会接受你的回答,因为这很有帮助
LeadContact.objects.filter(next_action_date__lte=datetime.date.today())