{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "as profile pictures, foto albums etc...\n\nHome-page: https://github.com/bitmazk/django-user-media\nAuthor: Martin Brochhaus\nAuthor-email: martin.brochhaus@bitmazk.com\nLicense: The MIT License\nDescription: Django User Media\n =================\n \n Almost all modern web apps allow their users to upload content such as audio,\n video or images. This raises a number of issues if that content should not be\n visible to the whole world by default.\n \n If you add an ImageField to your user model, you need to come up with a good\n idea on how to save those images. It is probably not a good idea to keep the\n original filenames as they might disturb your server's file system and open\n doors for hackers, who might try to brute-force against your\n ``/media/user_profiles/`` in the hope to steal some valuable files.\n \n Since it seems inevitable to implement a function for Django's FileField's\n ``upload_to`` attribute I thought that this might be a candidate for a reusable\n app.\n \n \n Prerequisites\n -------------\n \n You need at least the following packages in your virtualenv:\n \n * Django\n * django-libs\n * easy_thumbnails\n * django-generic-positions\n * simplejson\n \n \n Installation\n ------------\n \n To get the latest stable release from PyPi::\n \n $ pip install django-user-media\n \n To get the latest commit from GitHub::\n \n $ pip install -e git://github.com/bitmazk/django-user-media.git#egg=user_media\n \n Add the app to your ``INSTALLED_APPS``::\n \n INSTALLED_APPS = [\n ...\n 'user_media',\n 'easy_thumbnails',\n 'django_libs',\n 'generic_positions',\n \n ]\n \n Hook the app into your main ``urls.py``::\n \n urlpatterns += patterns('',\n ...\n url(r'^umedia/', include('user_media.urls')),\n )\n \n Run the migrations to create the app's database tables::\n \n $ ./manage.py migrate user_media\n \n \n Usage\n -----\n \n \n Add generic relation\n ++++++++++++++++++++\n \n Let's assume that you have a ``UserProfile`` model and you want to add an\n ``avatar`` field to that model.\n \n First you might want to add a [``GenericRelation``](https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericRelation) to your ``UserProfile``\n model::\n \n from django.contrib.contenttypes import fields\n \n \n class UserProfile(models.Model):\n ...\n user = models.ForeignKey(\n getattr(settings, 'AUTH_USER_MODEL', 'auth.User'),\n )\n \n avatar = fields.GenericRelation(\n 'user_media.UserMediaImage',\n )\n \n \n Add property\n ++++++++++++\n \n Now you will be able to get all uploaded images that belong to a\n ``UserProfile`` by doing this::\n \n profile = UserProfile.objects.get(pk=1)\n images = profile.avatar.all()\n \n It makes sense to add a convenience method to your ``UserProfile`` model::\n \n class UserProfile(models.Model):\n ...\n @property\n def avatar(self):\n try:\n return self.avatar.all()[0]\n except IndexError:\n return None\n \n \n Add link to update form\n +++++++++++++++++++++++\n \n In your templates you can now provide a link to the image creation view like\n this (assuming that your ``UserProfile`` object is called ``object`` in the\n template's context)::\n \n Upload your picture\n \n Note that ``userprofile`` is the model name that the ``ContentType`` of your\n ``UserProfile`` model would return. You can figure this out with ``./manage.py\n shell`` for example::\n \n $ ./manage.py shell\n In [1]: from django.contrib.contenttypes.models import ContentType\n In [2]: from your_app.models import UserProfile\n In [3]: ContentType.objects.get_for_model(UserProfile).model\n Out [1]: u'userprofile'\n \n When visiting that link, the user will see an image upload form. You might\n want to override that template (``user_media/usermediaimage_form.html``).\n \n After uploading the image the view should redirect back to the absolute url\n of your ``UserProfile``. If you want to redirect to another URL, you can\n provide a ``next`` URL parameter via POST or GET::\n \n Upload your picture\n \n \n Display images\n ++++++++++++++\n \n Now you should have all building blocks that you need to add links or buttons\n to your templates that call the views of this application. On your\n ``UserProfile`` detail view you could display the avatar, if available::\n \n {% if object.avatar %}\n \n {% endif %}\n \n \n Delete and edit images\n ++++++++++++++++++++++\n \n Or in your ``UserProfile`` update view you could display a link to upload a\n new image or to delete the existing image::\n \n {% if form.instance.get_avatar %}\n

\n Delete picture\n {% else %}\n Add profile picture\n {% endif %}\n \n The delete link in this example will render the\n ``user_media/usermediaimage_confirm_delete.html`` template, which you might\n want to override in your project.\n \n A link for editing an existing image would look like this::\n \n Edit picture\n \n \n Upload from your own model form\n +++++++++++++++++++++++++++++++\n \n Often you might not want to provide a dedicated form for uploading images but\n you might want to have an image field right on the model form of your content\n object. In this case you can inherit from `UserMediaImageFormMixin`::\n \n from django import forms\n from user_media.forms import UserMediaImageFormMixin\n from yourapp.models import UserProfile\n \n class UserProfileForm(UserMediaImageFormMixin, forms.ModelForm):\n image_label = _('Image')\n require_user_media_image = False\n image_field_name = 'user_media_image'\n image_widget = forms.ClearableFileInput() # optional\n \n # your form implementation\n \n The mixin will dynamically add a `forms.ImageField` with the name\n `user_media_image` to your form. You can control the label of that field by\n setting the `image_label` attribute on your form class. You can also make the\n field mandatory by setting the `require_user_media_image` attribute to `True`.\n \n AJAX calls\n ----------\n \n You might want to call the ``CreateImageView`` from an AJAX call, i.e. when\n displaying the form in a jQuery modal. To make life easier the view will\n return a different template when the request is an AJAX call.\n \n The names of the alternative templates are\n ``user_media/partials/ajax_usermediaimage_form.html`` and\n ``user_media/partials/ajax_usermediaimage_confirm_delete.html``.\n \n Make sure to add a user field to the object::\n \n user = models.ForeignKey(\n getattr(settings, 'AUTH_USER_MODEL', 'auth.User'),\n verbose_name=_('User'),\n )\n \n Alternatively you can add a function called ``user_can_edit``: ::\n \n def user_can_edit(self, user):\n \"\"\"\n Function, which returns True if the user is allowed edit the instance.\n \n \"\"\"\n if user in self.users.all():\n return True\n return False\n \n \n AJAX multi image upload\n -----------------------\n \n If you want to upload multiple images at once, only prepare the following\n templates::\n \n user_media/partials/image_upload.html\n user_media/partials/image.html\n \n Then add styles and jQuery scripts. We've used blueimp's file upload, so you\n make it work by adding jQuery & jQuery-UI plus the scripts in::\n \n user_media/partials/image_upload_scripts.html\n \n Now include the form::\n \n {% include \"user_media/partials/image_upload.html\" with object=request.user.get_profile maximum='5' hide_cutout='0' mode=\"multiple\" c_type=\"profile\" %}\n \n You can use the variable `hide_cutout=\"0\"` to hide the link that triggers the\n jQuery crop functionality.\n \n You can limit the maximum upload by using the following setting::\n \n USER_MEDIA_UPLOAD_MAXIMUM = 5\n \n \n AJAX single image upload\n ------------------------\n \n You can also combine single and multiple uploads. Just use the templates and\n add the wanted variables::\n \n {% include \"user_media/partials/image_upload.html\" with object=request.user.get_profile field='logo' mode=\"single\" show_main_thumb=\"True\" %}\n \n Extra classes for newly loaded image\n ------------------------------------\n \n If you are using the single image upload, your newly uploaded image will\n replace the current `img`-element in your `userMediaImageUploaded`-element.\n Sometimes you might have special CSS classes on your images and you might want\n to add those classes again to the `img` that has just been added to the DOM. In\n order to define the classes that should be added to newly loaded image, just\n add the `data-img-class=\"myclass1 myclass2\"` attribute to the element that has\n the `userMediaImageUploaded` class.\n \n jQuery image cropping\n ---------------------\n \n You can easily add a frontend image cropping. First of all, add a new thumbnail\n processor ``user_media.processors.crop_box``::\n \n THUMBNAIL_PROCESSORS = (\n 'user_media.processors.crop_box',\n ...\n 'easy_thumbnails.processors.colorspace',\n 'easy_thumbnails.processors.autocrop',\n 'easy_thumbnails.processors.scale_and_crop',\n 'easy_thumbnails.processors.filters',\n )\n \n Then add the cropping template and the relevant js libraries::\n \n {% include \"user_media/partials/crop.html\" %}\n \n \n \n \n You can modify the settings by overwriting the input fields in ``crop.html``.\n \n Check out: http://deepliquid.com/content/Jcrop.html\n \n Now, if a user clicks on ``Select another cutout``, the original image will be\n pushed into the crop area, where the user is able to select a frame. If she\n then saves the cropped area, the coordinates will be saved to the\n ``UserMediaImage`` instance.\n \n By using the new thumbnail processor it's easy to use this coordinates to\n generate thumbnails::\n \n {% thumbnail image.image image.small_size box=image.box_coordinates %}\n \n \n Settings\n --------\n \n USER_MEDIA_THUMB_SIZE_SMALL\n +++++++++++++++++++++++++++\n \n Default: (95, 95)\n \n Size of the small auto-generated thumbnails, which are processed after\n upload/cropping.\n \n \n USER_MEDIA_THUMB_SIZE_LARGE\n +++++++++++++++++++++++++++\n \n Default: (150, 150)\n \n Size of the large auto-generated thumbnails, which are processed after\n upload/cropping.\n \n \n USER_MEDIA_UPLOAD_MAXIMUM\n +++++++++++++++++++++++++\n \n Default: 3\n \n Amount of images to be uploaded at a maximum.\n \n \n Contribute\n ----------\n \n If you want to contribute to this project, please perform the following steps\n \n .. code-block:: bash\n \n # Fork this repository\n # Clone your fork\n mkvirtualenv -p python2.7 django-user-media\n make develop\n \n git co -b feature_branch master\n # Implement your feature and tests\n git add . && git commit\n git push -u origin feature_branch\n # Send us a pull request for your feature branch\n \n In order to run the tests, simply execute ``tox``. This will install two new\n environments (for Django 1.8 and Django 1.9) and run the tests against both\n environments.\n \nKeywords: django,common,reusable,media,files,upload\nPlatform: OS Independent\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-user-media", "package_url": "https://pypi.org/project/django-user-media/", "platform": "", "project_url": "https://pypi.org/project/django-user-media/", "project_urls": null, "release_url": "https://pypi.org/project/django-user-media/1.2.5/", "requires_dist": null, "requires_python": "", "summary": "A reusable app to graceously handle files that your users might upload, such", "version": "1.2.5" }, "last_serial": 3726333, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "5ddacb00634e7f6455ac4d34ac094426", "sha256": "278b22b03690c5b64c5bfa0dd7f0925f35814ddca27d3bcc9f671b5172d44142" }, "downloads": -1, "filename": "django-user-media-0.1.tar.gz", "has_sig": false, "md5_digest": "5ddacb00634e7f6455ac4d34ac094426", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 209107, "upload_time": "2012-07-14T11:06:58", "url": "https://files.pythonhosted.org/packages/f4/52/28fdd786ef640c65048497939689d883d419d5dcab88f72a6b51620b63c9/django-user-media-0.1.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "647ffed7bef443572afa9cc0be05a730", "sha256": "df092b7e48f339f2f8360d382dd95ceda789669e4049fb66be90cdf6368ed6f7" }, "downloads": -1, "filename": "django-user-media-0.10.tar.gz", "has_sig": false, "md5_digest": "647ffed7bef443572afa9cc0be05a730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 589420, "upload_time": "2014-02-05T08:21:41", "url": "https://files.pythonhosted.org/packages/5e/3c/de26278e29293ac1433ab27e10d562056a35033ac0c0487a0505a04a595b/django-user-media-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "c29b01c5dc38bc2bb44d424e826dbf96", "sha256": "71f870231e32afab694ed412e9ea7af645ed848ef478338c27d385f27146d33b" }, "downloads": -1, "filename": "django-user-media-0.11.tar.gz", "has_sig": false, "md5_digest": "c29b01c5dc38bc2bb44d424e826dbf96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 582968, "upload_time": "2014-03-21T09:21:10", "url": "https://files.pythonhosted.org/packages/14/a8/60dcd7e0044918eaef4dc323850c4c0e36f82f5043815d295a8d0789887e/django-user-media-0.11.tar.gz" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "78e3f0144c3d84e6ad11bbb77c1459ff", "sha256": "471cf5f7df77496c9b0566c923efb9ba4437e8dc54ab72860b1dcf77eb4d68c5" }, "downloads": -1, "filename": "django-user-media-0.11.1.tar.gz", "has_sig": false, "md5_digest": "78e3f0144c3d84e6ad11bbb77c1459ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 589824, "upload_time": "2014-04-30T06:53:09", "url": "https://files.pythonhosted.org/packages/23/c0/79c8174f12b63366198714e97bc1933b33b7b9ed286157556f5599119fbb/django-user-media-0.11.1.tar.gz" } ], "0.11.2": [ { "comment_text": "", "digests": { "md5": "1a9e338501961f3268156108cdf1800b", "sha256": "04d8fa2cf01fb9028ee96c13dea3b26945c0bf9d814003cc6ec944233efaae51" }, "downloads": -1, "filename": "django-user-media-0.11.2.tar.gz", "has_sig": false, "md5_digest": "1a9e338501961f3268156108cdf1800b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 596042, "upload_time": "2014-07-15T14:38:39", "url": "https://files.pythonhosted.org/packages/96/3b/ad6f7dcdd854550f1bbb13a59eb4119d064251f26d507fa68379a1341720/django-user-media-0.11.2.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "6972ed6934f8a4c1aaed3659b36c0098", "sha256": "0cff4aa9bc55d7dbf2cc2515d95ec08b580616b5f51a4bb7758d1d3c3c4115f7" }, "downloads": -1, "filename": "django-user-media-0.2.tar.gz", "has_sig": false, "md5_digest": "6972ed6934f8a4c1aaed3659b36c0098", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203017, "upload_time": "2012-10-12T23:55:52", "url": "https://files.pythonhosted.org/packages/34/da/98b5fed9b6c0d706a10652e32cc4b4b4d4ce3f17c080bbed77c8a1bb77fa/django-user-media-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2998e95bc5e272f5521514b2f32a6367", "sha256": "3fa94c086d941edd324578826be8aabb1c60d0ac1059e225d037987cb57a59d5" }, "downloads": -1, "filename": "django-user-media-0.3.tar.gz", "has_sig": false, "md5_digest": "2998e95bc5e272f5521514b2f32a6367", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203292, "upload_time": "2012-12-05T23:45:31", "url": "https://files.pythonhosted.org/packages/cb/c2/932ca07bb222c48792c902ccbcc0a298192a49499a4696f7687e3123b2cc/django-user-media-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "797f9914809adc3d1b854608835ee704", "sha256": "6132722592ad4db4131afa96fcfcb7faae04e83e6fad3dcf2d311c218ccc1778" }, "downloads": -1, "filename": "django-user-media-0.4.tar.gz", "has_sig": false, "md5_digest": "797f9914809adc3d1b854608835ee704", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203494, "upload_time": "2012-12-08T13:06:45", "url": "https://files.pythonhosted.org/packages/5e/ca/82cc52cc54f8917ca7b10a66bad853771ad2ee361a0983f919c3faedf2a2/django-user-media-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "310bb7f5a705c1e7483a1a601a9dd38d", "sha256": "ed744dfee59578576e12d94c28cc021a74a763772e7f6944be4ae3a6df10cd67" }, "downloads": -1, "filename": "django-user-media-0.5.tar.gz", "has_sig": false, "md5_digest": "310bb7f5a705c1e7483a1a601a9dd38d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203526, "upload_time": "2012-12-09T13:41:55", "url": "https://files.pythonhosted.org/packages/e2/c1/e038e752954df476175dbd91d03f03617ea8c78dcb9930ccdef747c8e659/django-user-media-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "c1750bf3cde542672b399a05e3ccda93", "sha256": "6b39a7654e5915b1c7032b4a1d9fdd4bb4264418afbbb7a350e90e96453b1d97" }, "downloads": -1, "filename": "django-user-media-0.6.tar.gz", "has_sig": false, "md5_digest": "c1750bf3cde542672b399a05e3ccda93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204624, "upload_time": "2012-12-10T02:27:12", "url": "https://files.pythonhosted.org/packages/cd/3b/a7877ef5934bdd9988c3fc2eab12d7116158cb81448a1ae583afea5961b2/django-user-media-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "1497327e3309d53faf142a57cef7dbee", "sha256": "d3a743feb4bf1d2fb04fb92c280edeeec98b28e686e285540ce76ffbd9fa2d4e" }, "downloads": -1, "filename": "django-user-media-0.7.tar.gz", "has_sig": false, "md5_digest": "1497327e3309d53faf142a57cef7dbee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204639, "upload_time": "2012-12-10T02:46:10", "url": "https://files.pythonhosted.org/packages/cc/1a/8f820c4c3beb9a64062d49fea03b6f73f63ce3025e83984107d4078ba9df/django-user-media-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "9f0d6669b3bc335c25fdf6feb397a825", "sha256": "14e8330b4e97287badbac198801f8dc9bcf6cd9b93eba15d88be16a5fba84586" }, "downloads": -1, "filename": "django-user-media-0.8.tar.gz", "has_sig": false, "md5_digest": "9f0d6669b3bc335c25fdf6feb397a825", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204722, "upload_time": "2012-12-11T01:15:01", "url": "https://files.pythonhosted.org/packages/99/06/8d34de6ddfd327cd69d0279bff5ea415941d0dfceae14387a07156295df4/django-user-media-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "ecefe1220faac42c26b39237983d5e41", "sha256": "4f2775f3d933017eb74e055b6fac6714a58858365af6fc099a727ccf8fb5f241" }, "downloads": -1, "filename": "django-user-media-0.9.tar.gz", "has_sig": false, "md5_digest": "ecefe1220faac42c26b39237983d5e41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 211022, "upload_time": "2013-04-17T03:45:15", "url": "https://files.pythonhosted.org/packages/bf/43/411856ffdf4d5f1db68e88be6ee188f194023beb04e67449f8bb8817df30/django-user-media-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "997ec79bd6a7306803890e1412c9fac8", "sha256": "0ec327911433f70cdc989aaae486c33a472dcc90654696e39bac0458d934504b" }, "downloads": -1, "filename": "django-user-media-0.9.1.tar.gz", "has_sig": false, "md5_digest": "997ec79bd6a7306803890e1412c9fac8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 378087, "upload_time": "2013-11-25T13:32:37", "url": "https://files.pythonhosted.org/packages/68/b3/7868796784705803bf10b217dc24119545ff78d882875c61dc31c3c24a9a/django-user-media-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "2b468fcdacbe2d8e059c27e18e3474b4", "sha256": "9b8adf6cefd9239a0f88d665cb15dc2dc877c3c2bb5d50c1444886db145004ba" }, "downloads": -1, "filename": "django-user-media-0.9.2.tar.gz", "has_sig": false, "md5_digest": "2b468fcdacbe2d8e059c27e18e3474b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 378800, "upload_time": "2013-11-27T13:22:50", "url": "https://files.pythonhosted.org/packages/a1/6c/e7f28de7e455cf43dc9cc9508914c1cb018bb587b73cbe8fcd402fc4717f/django-user-media-0.9.2.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "be60ff6a7f2ce4bdd02cc75a36dd12ab", "sha256": "fe4e97d1d034d96926377e0f11e61f8894e2d24457117c008226f4931deddcf5" }, "downloads": -1, "filename": "django-user-media-1.0.tar.gz", "has_sig": false, "md5_digest": "be60ff6a7f2ce4bdd02cc75a36dd12ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 590578, "upload_time": "2014-07-30T05:02:44", "url": "https://files.pythonhosted.org/packages/b6/08/0d9e224364585e27c97945660ee93f4adf94cdeb543fddca53db9dfb19de/django-user-media-1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "add4b81bcb48b29834dbeaa474ecd922", "sha256": "0075ee15c6d7349a0b368420c4536c3de4cb9bd49751da5fa9e9863edd21739e" }, "downloads": -1, "filename": "django-user-media-1.1.1.tar.gz", "has_sig": false, "md5_digest": "add4b81bcb48b29834dbeaa474ecd922", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591091, "upload_time": "2014-08-04T16:58:31", "url": "https://files.pythonhosted.org/packages/00/e1/cc65bef6486da36620faff490d32f6cea289d7b25f81724699ea5710f3a3/django-user-media-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "45bc6faa9ccd0b46a0fb8cea2e159064", "sha256": "b2cd9df8e5ccb3a1fa464e06d8b5b9bb3e4dee7ae30377d805894db0d29567b3" }, "downloads": -1, "filename": "django-user-media-1.1.2.tar.gz", "has_sig": false, "md5_digest": "45bc6faa9ccd0b46a0fb8cea2e159064", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 578838, "upload_time": "2014-09-18T14:12:10", "url": "https://files.pythonhosted.org/packages/be/9e/1ff7ea8e3d969394c8a524f910495d0844e9fcde6e30246493d2bcba8617/django-user-media-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "10e7c465d3af7ed69b47406bd5b34ef4", "sha256": "3bb1a57bd4924943915627e5d8387e9209368fe813d9dc99e1b97f3ce5de5432" }, "downloads": -1, "filename": "django-user-media-1.1.3.tar.gz", "has_sig": false, "md5_digest": "10e7c465d3af7ed69b47406bd5b34ef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591587, "upload_time": "2014-09-19T04:12:28", "url": "https://files.pythonhosted.org/packages/df/ff/d24a6f30831f6e18efc0b4da642c7be1b2a521d2a4b44b6823df970f1c59/django-user-media-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "528b290dab471876667d7048775e4c1f", "sha256": "e43ab175150cea855e910ac6ed1224dda46df35bca155ff23b49d493ed754798" }, "downloads": -1, "filename": "django-user-media-1.1.4.tar.gz", "has_sig": false, "md5_digest": "528b290dab471876667d7048775e4c1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591609, "upload_time": "2014-10-08T07:19:48", "url": "https://files.pythonhosted.org/packages/bf/88/39ba54ecff89b480223244ebef8f1ce0e8a83bf487d0c44effc1f9ba58bc/django-user-media-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "21838dbc0e60bdfdf93072b106f2abdb", "sha256": "b566371bcc859da9b38d4dae038580d1c3f5bbbea60a625d4c29be663715a1fe" }, "downloads": -1, "filename": "django-user-media-1.1.5.tar.gz", "has_sig": false, "md5_digest": "21838dbc0e60bdfdf93072b106f2abdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 594620, "upload_time": "2014-11-21T11:15:18", "url": "https://files.pythonhosted.org/packages/9f/b7/70dd6403c4962565e8a6bf5d582fb3c40aaf00f3422e0ce7a99582ca7ffd/django-user-media-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "1286e78be1f8fdb4e57ac42bed6698bc", "sha256": "4cff86124b449e16e1d1fc243e0bddbe3baac61d7b5fa92fbc9084b6553010c0" }, "downloads": -1, "filename": "django-user-media-1.1.6.tar.gz", "has_sig": false, "md5_digest": "1286e78be1f8fdb4e57ac42bed6698bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 579153, "upload_time": "2015-03-11T08:39:20", "url": "https://files.pythonhosted.org/packages/d8/37/f7fd8e54112d636ca5cd7c4408d20858887856f19fff691a533a8bbc9959/django-user-media-1.1.6.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "ec4a2404a2f0d26856288dc532bb6afa", "sha256": "fcc6fce285b595d0dcd6d843d8273fe826cbfdc841131e20445f534a356c6cee" }, "downloads": -1, "filename": "django-user-media-1.2.tar.gz", "has_sig": false, "md5_digest": "ec4a2404a2f0d26856288dc532bb6afa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 578579, "upload_time": "2016-01-14T11:48:01", "url": "https://files.pythonhosted.org/packages/a0/46/44b5ba79c56ac768b3dc86714c53322b05b80ae21f4882a61dbee14b1d66/django-user-media-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "9e9714214d3cbb0f23b15a6b736f0aa2", "sha256": "c906a33af290416d933dbca9f1718dec4d345d34c24398a5b884fbf7e593e791" }, "downloads": -1, "filename": "django-user-media-1.2.1.tar.gz", "has_sig": false, "md5_digest": "9e9714214d3cbb0f23b15a6b736f0aa2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 578735, "upload_time": "2016-02-23T09:28:52", "url": "https://files.pythonhosted.org/packages/c6/dd/dcd29dff00946306bbcdb5e5a30343a25f4980475b44d109c46c2ed739da/django-user-media-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "9a16289f4560284b6fbc6587a1fb676a", "sha256": "d8b5f0fccd4312ecc1ee50111092c0d4d905b28fb833637f8b46c90e999386c2" }, "downloads": -1, "filename": "django-user-media-1.2.2.tar.gz", "has_sig": false, "md5_digest": "9a16289f4560284b6fbc6587a1fb676a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 578773, "upload_time": "2016-04-20T07:21:13", "url": "https://files.pythonhosted.org/packages/fd/8e/778131eea3b06e94cbc967e0a22b902b8bd8fc0387c9f46f60d1086d3fca/django-user-media-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "db6eaadecc0e9dc9aff82f9144b331b8", "sha256": "e698121e9a80081e57fceeddace3192cf40bdd7d907cecc4629c8c1e344de48e" }, "downloads": -1, "filename": "django-user-media-1.2.3.tar.gz", "has_sig": false, "md5_digest": "db6eaadecc0e9dc9aff82f9144b331b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 578484, "upload_time": "2016-05-03T10:04:59", "url": "https://files.pythonhosted.org/packages/d2/79/81a71db2b6894792c927a49867486fac876373a3c775cba9a3baaa5eb95c/django-user-media-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "e58204fb18ff94c2978e4cc0faaa2e13", "sha256": "1082f2d4e598966fe36b69795b086b378ab50318af3f58e587a06a6a22419db2" }, "downloads": -1, "filename": "django-user-media-1.2.4.tar.gz", "has_sig": false, "md5_digest": "e58204fb18ff94c2978e4cc0faaa2e13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 584013, "upload_time": "2017-01-27T18:32:56", "url": "https://files.pythonhosted.org/packages/a1/ca/84aaef774f6993e94f148e1186542bc44548838a8fefee05a1593489a8fd/django-user-media-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "e135f0588c6eaadfc6b735cd24992369", "sha256": "bf7703ca501a53eab3935e951d6003ce133251043031b921caa7f5d41078d4a7" }, "downloads": -1, "filename": "django-user-media-1.2.5.tar.gz", "has_sig": false, "md5_digest": "e135f0588c6eaadfc6b735cd24992369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 590015, "upload_time": "2018-04-02T13:51:48", "url": "https://files.pythonhosted.org/packages/37/73/e8352d7612b2f7602f9804c7322db4e9636d3b784cfce43f85284fc6792f/django-user-media-1.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e135f0588c6eaadfc6b735cd24992369", "sha256": "bf7703ca501a53eab3935e951d6003ce133251043031b921caa7f5d41078d4a7" }, "downloads": -1, "filename": "django-user-media-1.2.5.tar.gz", "has_sig": false, "md5_digest": "e135f0588c6eaadfc6b735cd24992369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 590015, "upload_time": "2018-04-02T13:51:48", "url": "https://files.pythonhosted.org/packages/37/73/e8352d7612b2f7602f9804c7322db4e9636d3b784cfce43f85284fc6792f/django-user-media-1.2.5.tar.gz" } ] }