def filter_queryset(self, request, queryset, view): if view.action != 'list': return queryset qs = request.query_params.get('query') date_created = parse_datetime(request.query_params.get('date_created__gte')) application_deadline = parse_datetime(request.query_params.get('application_deadline__gte')) tags = request.query_params.getlist('tags') criteria = {} if date_created: criteria.update(date_created__gte=date_created) if application_deadline: criteria.update(application_deadline__gte=application_deadline) return get_search_queryset(qs, queryset, tags=tags, criteria=criteria)
def filter_queryset(self, request, queryset, view): if view.action != 'list': return queryset query_string = request.query_params.get('query') query_params = request.query_params submission_deadline__gte = parse_datetime(query_params.get('submission_deadline__gte')) start_date__gte = parse_datetime(query_params.get('start_date__gte') or query_params.get('start_date')) tags = request.query_params.getlist('tags') criteria = {} if submission_deadline__gte: criteria.update(submission_deadline__gte=submission_deadline__gte) if start_date__gte: criteria.update(start_date__gte=start_date__gte) return get_search_queryset(query_string, queryset, tags=tags, criteria=criteria)
def get_calendar_queryset(self): start = parse_datetime(self.request.query_params['start']) end = parse_datetime(self.request.query_params['end']) return self.queryset.find_by_interval(start, end), start, end
def parse_date(value): try: return utils.parse_datetime(value) except ValueError: raise ValidationError('Invalid format.')