{ "info": { "author": "Ben Konrath", "author_email": "ben@bagu.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "# django-csv-export-view\n\nA Django class-based view for CSV export.\n\n[![Build Status](https://travis-ci.org/benkonrath/django-csv-export-view.svg?branch=master)](https://travis-ci.org/benkonrath/django-csv-export-view)\n\n## Features\n\n* Easy CSV exports by setting a Django `model` and a `fields` or `exclude` iterable\n* Works with existing class-based view mixins for access control\n* Generates Microsoft Excel friendly CSV by default\n* Proper HTTP headers set for CSV\n* Easy to override defaults as needed\n* Easy integration into Django Admin\n\n## Installation\n\n`pip install django-csv-export-view`\n\n## Quick Start\n\nExamples:\n```python\nfrom csv_export.views import CSVExportView\n\nclass DataExportView(CSVExportView):\n model = Data\n fields = ('field1', 'field2__related_field', 'property1')\n\nclass DataExportView(CSVExportView):\n model = Data\n fields = '__all__'\n\nclass DataExportView(CSVExportView):\n model = Data\n exclude = ('id',)\n\n def get_queryset(self):\n queryset = super(DataExportView, self).get_queryset()\n return queryset.exclude(deleted=True)\n\nclass DataExportView(CSVExportView):\n model = Data\n\n def get_fields(self, queryset):\n fields = ['username', 'email']\n if self.request.user.is_superuser:\n fields.append('birth_date')\n return fields\n```\n\n`fields` / `exclude`: An iterable of field names and properties. You cannot set both `fields` and `exclude`.\n`fields` can also be `'__all__'` to export all fields. Model properties are not included when `'__all__'` is used.\nRelated field can be used with `__`. Override `get_fields(self, queryset)` for custom behaviour not supported by the\ndefault logic.\n\n`model`: The model to use for the CSV export queryset. Override `get_queryset()` if you need a custom queryset.\n\n## Further Customization\n\nExamples:\n```python\nfrom csv_export.views import CSVExportView\n\nclass DataExportView(CSVExportView):\n model = Data\n fields = '__all__'\n header = False\n specify_separator = False\n filename = 'data-export.csv'\n\nclass DataExportView(CSVExportView):\n model = Data\n fields = '__all__'\n\n def get_filename(self, queryset):\n return 'data-export-{!s}.csv'.format(timezone.now())\n```\n\n`header` - *boolean* - Default: `True` \nWhether or not to include the header in the CSV.\n\n`filename` - *string* - Default: Dasherized version of `verbose_name_plural` from `queryset.model`. \nOverride `get_filename(self, queryset)` if a dynamic filename is required.\n\n`specify_separator` - *boolean* - Default: `True` \nWhether or not to include `sep=` as the first line of the CSV file. This is useful for generating Microsoft\nExcel friendly CSV.\n\n## CSV Writer Options\n\nExample:\n```python\nfrom csv_export.views import CSVExportView\n\nclass DataExportView(CSVExportView):\n model = Data\n fields = '__all__'\n\n def get_csv_writer_fmtparams(self):\n fmtparams = super(DataExportView, self).get_csv_writer_fmtparams()\n fmtparams['delimiter'] = '|'\n return fmtparams\n```\n\nOverride `get_csv_writer_fmtparams(self)` and return a dictionary of csv write format parameters. Default format\nparameters are: dialect='excel' and quoting=csv.QUOTE_ALL. See all available options in the Python docs:\n\nhttps://docs.python.org/3.6/library/csv.html#csv.writer\n\n## Django Admin Integration\n\nExample:\n```python\nfrom django.contrib import admin\nfrom csv_export.views import CSVExportView\n\n@admin.register(Data)\nclass DataAdmin(admin.ModelAdmin):\n actions = ('export_data_csv',)\n\n def export_data_csv(self, request, queryset):\n view = CSVExportView(queryset=queryset, fields='__all__')\n return view.get(request)\n\n export_data_csv.short_description = 'Export CSV for selected Data records'\n```\n\n## Contributions\n\nPull requests are happily accepted.\n\n## Alternatives\n\nhttps://github.com/django-import-export/django-import-export/\n\nhttps://github.com/mjumbewu/django-rest-framework-csv", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benkonrath/django-csv-export-view", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-csv-export-view", "package_url": "https://pypi.org/project/django-csv-export-view/", "platform": "", "project_url": "https://pypi.org/project/django-csv-export-view/", "project_urls": { "Homepage": "https://github.com/benkonrath/django-csv-export-view" }, "release_url": "https://pypi.org/project/django-csv-export-view/1.1.0/", "requires_dist": null, "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "summary": "Django class-based view for CSV exports", "version": "1.1.0", "yanked": false, "yanked_reason": null }, "last_serial": 7197345, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8a11757e1fc6df31482aa0362de872c2", "sha256": "e50bafa32d6f311382d71e9ae913927e571d5f00bd75551bc31fee8f551bf177" }, "downloads": -1, "filename": "django-csv-export-view-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8a11757e1fc6df31482aa0362de872c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 6997, "upload_time": "2017-08-01T20:35:31", "upload_time_iso_8601": "2017-08-01T20:35:31.502181Z", "url": "https://files.pythonhosted.org/packages/f0/40/ead4e338ec708858af1f11e51a96400bf38399b475b1bcbc2ba0e31f318b/django-csv-export-view-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6f015d9f8a4ad6c48137b74f7c141ecd", "sha256": "4ade520dda8d2be70c123922c01615e0fa2a065a6d2f460e884cae3b03caa169" }, "downloads": -1, "filename": "django-csv-export-view-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6f015d9f8a4ad6c48137b74f7c141ecd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 7660, "upload_time": "2017-08-07T10:41:13", "upload_time_iso_8601": "2017-08-07T10:41:13.380659Z", "url": "https://files.pythonhosted.org/packages/2a/7e/402e56f68a1d88c8d45430481ba80bf4a81c73647726335841a997f60088/django-csv-export-view-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b3f82f17ce346e283934f2b7915b2df0", "sha256": "fd34726407b26a7a09265f026a83a4510668a6e128858fd24cf8c4991a0be7c5" }, "downloads": -1, "filename": "django-csv-export-view-0.3.0.tar.gz", "has_sig": false, "md5_digest": "b3f82f17ce346e283934f2b7915b2df0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9377, "upload_time": "2017-10-05T11:35:23", "upload_time_iso_8601": "2017-10-05T11:35:23.855888Z", "url": "https://files.pythonhosted.org/packages/f0/60/3932f0fd396383087957bba25f45694cf49ada8d75d7d985634bf4ddcdcc/django-csv-export-view-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7d29c101108713be1d74f77e048cf170", "sha256": "0f375cfe1f2acf13236c0885c45e6492a21c763d354c2498c360a832938ca56b" }, "downloads": -1, "filename": "django-csv-export-view-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7d29c101108713be1d74f77e048cf170", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9449, "upload_time": "2017-10-16T21:24:09", "upload_time_iso_8601": "2017-10-16T21:24:09.415244Z", "url": "https://files.pythonhosted.org/packages/52/71/14fe74fa98508e961ccf38b4dbaa1444614ca503e6f6f498091f4c3ae435/django-csv-export-view-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "588194aa4cfc704e842d13051e0a15c2", "sha256": "443698171c7b257bb3de51a5f1b686137b4a3693a204d7e0fa45274435bc14c8" }, "downloads": -1, "filename": "django_csv_export_view-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "588194aa4cfc704e842d13051e0a15c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 7032, "upload_time": "2018-09-20T19:11:14", "upload_time_iso_8601": "2018-09-20T19:11:14.191954Z", "url": "https://files.pythonhosted.org/packages/3a/40/960c04bc209f88afa0872d35b684626553d94fa5c665efe2a43e9ce56e56/django_csv_export_view-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d2891482433a7a3358458c11635a5378", "sha256": "b9828ca2f3eafec9568b04f72f4ca7de489aede9fa922f44af9a9718382bd9ac" }, "downloads": -1, "filename": "django-csv-export-view-0.5.0.tar.gz", "has_sig": false, "md5_digest": "d2891482433a7a3358458c11635a5378", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9017, "upload_time": "2018-09-20T19:11:17", "upload_time_iso_8601": "2018-09-20T19:11:17.840429Z", "url": "https://files.pythonhosted.org/packages/07/2d/34892416cb2da1ee16c9b977ccb9623b0b1362916f7b87894ebd6efa598e/django-csv-export-view-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d3e0ba11851b10f7fc1a5177c1c89d27", "sha256": "8e6731a534c8c14283976910f2737448d30cc44ba6b369670ceacb3d94229be4" }, "downloads": -1, "filename": "django_csv_export_view-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3e0ba11851b10f7fc1a5177c1c89d27", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 7896, "upload_time": "2018-10-22T18:50:22", "upload_time_iso_8601": "2018-10-22T18:50:22.165345Z", "url": "https://files.pythonhosted.org/packages/ed/d0/aa183d2d04247b1c52e6293bbda983bffb3f7ffda54d2fc03ca025a111c9/django_csv_export_view-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4ec130f414b671c4c8ad89d1d193aacf", "sha256": "eff05b155cba3387808852d09497229e7bfe7bcb3e43b67455f38e4f342f9a9d" }, "downloads": -1, "filename": "django-csv-export-view-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4ec130f414b671c4c8ad89d1d193aacf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9678, "upload_time": "2018-10-22T18:50:23", "upload_time_iso_8601": "2018-10-22T18:50:23.832698Z", "url": "https://files.pythonhosted.org/packages/bb/f9/db660f0c1889d185810d32b8b53c45fed1bf85628095bb67b1abbb0d1edd/django-csv-export-view-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "89b83e4e2d765a4a66cd41fffe89c641", "sha256": "178fb2be535f0b1d146ddd8cebb2f5ec6f738b7807a5600a9a234134ab7f9e92" }, "downloads": -1, "filename": "django_csv_export_view-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89b83e4e2d765a4a66cd41fffe89c641", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 8989, "upload_time": "2019-10-24T12:22:26", "upload_time_iso_8601": "2019-10-24T12:22:26.004036Z", "url": "https://files.pythonhosted.org/packages/01/58/6d15569b0af6ee77f2612c5ff137669906cf41ede2fec780bbeadea808c6/django_csv_export_view-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ef135603f7cd73c329b11042ce066a2f", "sha256": "a6d4da40efa0f0d44178afd20dff54ff2d44b5625c362b506ae1f9f52e568c81" }, "downloads": -1, "filename": "django-csv-export-view-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ef135603f7cd73c329b11042ce066a2f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9852, "upload_time": "2019-10-24T12:14:00", "upload_time_iso_8601": "2019-10-24T12:14:00.705521Z", "url": "https://files.pythonhosted.org/packages/a8/4b/5f3ac9675d7a595285162c04f60c95515e626e863bda77c11162cbd1b147/django-csv-export-view-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "79b27eace8b1c234b243a8a03ee0a880", "sha256": "a2f2e8161c0098d43fc818caa52928e4a9a1e80d8a037e2a3fd7aea5c3141d71" }, "downloads": -1, "filename": "django-csv-export-view-1.1.0.tar.gz", "has_sig": false, "md5_digest": "79b27eace8b1c234b243a8a03ee0a880", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9910, "upload_time": "2020-05-08T13:55:49", "upload_time_iso_8601": "2020-05-08T13:55:49.730141Z", "url": "https://files.pythonhosted.org/packages/a7/96/c56aa524e890f653e76249f8b402c56b48122c63252e963feb9e0b1b4947/django-csv-export-view-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "79b27eace8b1c234b243a8a03ee0a880", "sha256": "a2f2e8161c0098d43fc818caa52928e4a9a1e80d8a037e2a3fd7aea5c3141d71" }, "downloads": -1, "filename": "django-csv-export-view-1.1.0.tar.gz", "has_sig": false, "md5_digest": "79b27eace8b1c234b243a8a03ee0a880", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9910, "upload_time": "2020-05-08T13:55:49", "upload_time_iso_8601": "2020-05-08T13:55:49.730141Z", "url": "https://files.pythonhosted.org/packages/a7/96/c56aa524e890f653e76249f8b402c56b48122c63252e963feb9e0b1b4947/django-csv-export-view-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }