diff --git a/djqscsv/__init__.py b/djqscsv/__init__.py index f0b591c..10f9fba 100644 --- a/djqscsv/__init__.py +++ b/djqscsv/__init__.py @@ -1,2 +1,2 @@ from .djqscsv import (render_to_csv_response, write_csv, # NOQA - generate_filename, CSVException) # NOQA + generate_filename, CSVException, csv_file_for) # NOQA diff --git a/djqscsv/djqscsv.py b/djqscsv/djqscsv.py index 034f689..2561e1e 100644 --- a/djqscsv/djqscsv.py +++ b/djqscsv/djqscsv.py @@ -44,6 +44,21 @@ def render_to_csv_response(queryset, filename=None, append_datestamp=False, return response +def csv_file_for(queryset, filename=None, append_datestamp=False, **kwargs): + if filename: + filename = _validate_and_clean_filename(filename) + if append_datestamp: + filename = _append_datestamp(filename) + else: + filename = generate_filename(queryset, + append_datestamp=append_datestamp) + + _file = open(filename, 'w') + write_csv(queryset, _file, **kwargs) + + return _file + + def write_csv(queryset, file_obj, **kwargs): """ The main worker function. Writes CSV data to a file object based on the