Package: ai-django-fileupload
Overview:This package provides an easy way to implement thejQuery Fileuploader, in your Django project.The uploaded files are stored through the Attachment model. Attachments could be linked to any model.Additionally, a list of attachments is rendered along with the uploader button. These attachments have a convenient delete feature.Installation:Add a requirement to your requirements.txt:ai-django-fileuploadAdd module toINSTALLED_APPS:fileupload.apps.FileuploadConfigAdd module's urls to your url file:url(r'^upload/', include('fileupload.urls')),Add static files. They are not included in this package, though a convenientnpm packageis provided.npm install ai-django-fileuploadRun migrationsSettingsDefault thumbnail imageThe uploader comes with a default thumbnail image, in case it couldn't be generated.You can set your own one, adding its location to the settings file:UPLOADER_DEFAULT_THUMBNAIL = '/static/img/default-thumbnail.png'Otherwise it'd be fetched from "static/node_modules/ai-django-fileupload/img/default-thumbnail.png". You may find useful to copy this image wherever your static content is stored.Login requiredIf your uploader needs the user be authenticated, you can enable this restriction adding this to the settings file:UPLOADER_LOGIN_REQUIRED = TruePersist filenamesThe uploader prepends a UUID to the filename. You can disable this by adding this to the settings file:UPLOADER_PERSIST_FILENAME = TrueUsage:Include the upload_file template tag in your template:{% load upload_file %}Call it with the object that the uploaded files will be attached to:{% upload_file obj=object %}Make sure to put the template tag outside any other form tags you have since it will render a new form.For a minimal setup, please load the following files. Scripts order is important.<link rel="stylesheet" type="text/css" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
  <link rel="stylesheet" type="text/css" href="node_modules/blueimp-file-upload/css/jquery.fileupload.css">

  <!-- jQuery -->
  <script src="node_modules/jquery/dist/jquery.js"></script>

  <!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
  <script src="node_modules/blueimp-file-upload/js/vendor/jquery.ui.widget.js"></script>

  <!-- The Templates plugin is included to render the upload/download listings -->
  <script src="node_modules/blueimp-tmpl/js/tmpl.min.js"></script>

  <!-- The Load Image plugin is included for the preview images and image resizing functionality -->
  <script src="node_modules/blueimp-load-image/js/load-image.all.min.js"></script>

  <!-- The Canvas to Blob plugin is included for image resizing functionality -->
  <script src="node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.min.js"></script>

  <!-- The basic File Upload plugin and components-->
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload.js"></script>
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload-process.js"></script>
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload-image.js"></script>
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload-audio.js"></script>
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload-video.js"></script>
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload-validate.js"></script>
  <script src="node_modules/blueimp-file-upload/js/jquery.fileupload-ui.js"></script>

  <!-- Locale -->
  <script src="node_modules/ai-django-fileupload/locale.js"></script>

  <!-- CSRF token -->
  <script src="node_modules/ai-django-fileupload/csrf.js"></script>

  <!-- The main application script -->
  <script src="node_modules/ai-django-fileupload/index.js"></script>

  <!-- The XDomainRequest Transport is included for cross-domain file deletion for IE8+ -->
  <!--[if gte IE 8]>
  <script src="node_modules/blueimp-file-upload/js/cors/jquery.xdr-transport.js"></script>
  <![endif]-->ContributeClone the project locallyCreate a new branch for your featureChange the dependency in your requirements.txt to a local (editable) one that points to your local file system:-e /Users/felix/Documents/workspace/ai-django-fileuploadEnsure the code passes the testsRun:python setup.py developCreate a pull requestPublish to PyPiIncrement version insetup.pyUpdateChangeloginReadme.mdCreate pull request / merge to masterRun:Make sure you have all the required packages installedpip install twine wheelCreate a file in your home directory:~/.pypirc[distutils]
index-servers=
    pypi
    testpypi

[pypi]
repository: https://upload.pypi.org/legacy/
username: ambient-innovation

[testpypi]
repository: https://test.pypi.org/legacy/
username: ambient-innovationEmptydistdirectoryCreate distributionpython setup.py sdist bdist_wheelUpload to Test-PyPitwine upload --repository testpypi dist/*Check at Test-PyPi if it looks niceUpload to real PyPitwine upload dist/*TestsInstall requirementspip install -r requirements.pipCheck coveragepytest --cov=fileupload fileuploadRun testspytestInternationalizationActivate a virtualenv with django installedGo to fileupload appRundjango-admin makemessages -l <language_code>Translate the .po fileRundjango-admin compilemessagesChangelog0.1.5(2021-12-07)Addedexcludefunctionality where attachments can be excluded from the response by ids0.1.4(2021-03-01)Fixed a bug where the upload_to method would cause a RecursionError when using the persist-filename optionAdded file type restriction configurable with UPLOADER_ALLOW_FILETYPE option0.1.3(2021-02-22)Added option to persist filename0.1.2(2019-12-11)Description altered0.1.1(2019-12-11)Updated Readme.md0.1.0(2019-11-19)Added support for django 2.2.*