
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
django-content-gallery
Advanced tools
The Django application allows to attach a collection of images to objects of any model of any app
.. image:: https://travis-ci.org/Kemaweyan/django-content-gallery.svg?branch=master :target: https://travis-ci.org/Kemaweyan/django-content-gallery .. image:: https://coveralls.io/repos/github/Kemaweyan/django-content-gallery/badge.svg?branch=master :target: https://coveralls.io/github/Kemaweyan/django-content-gallery?branch=master
django-content-gallery is a Django application that allows to attach a collection of images to objects of any models in you Django projects. It also allows you easily add and remove images, re-attach images to another object (i.e. move an image to another collection) and change an order of images in the collection as well.
The django-content-gallery creates 5 images with different sizes for each uploaded image:
.. NOTE::
Windows users should also copy magic1.dll
, regex2.dll
and zlib1.dll
onto
the PATH. These libraries are required by the python-magic package and could be
downloaded on the File for Windows <http://gnuwin32.sourceforge.net/packages/file.htm>
_
official page.
To install the django-content-gallery type following command:
.. code-block::
$ pip install django-content-gallery
Then add the content_gallery
to INSTALLED_APPS in the settings of your project and the
admin_jqueryui
to enable sorting images in the admin panel:
.. code-block::
INSTALLED_APPS = [
...
'content_gallery',
'admin_jqueryui',
]
Add the content_gallery.urls
to the urls.py of your project (you could use any
URL pattern, not only ^content_gallery\
):
.. code-block::
urlpatterns = [
...
url(r'^content_gallery/', include('content_gallery.urls')),
]
Create tables in the database using the migrate
command:
.. code-block::
$ python manage.py migrate content_gallery
Now the django-content-gallery is ready for use!
To change settings of the django-content-gallery set the CONTENT_GALLERY
dict
in your settings.py
module. The dict could contain following items:
image_width - the target width of the large image
image_height - the target height of the large image
small_image_width - the target width of the small image
small_image_height - the target height of the small image
thumbnail_width - the target width of the thumbnail
thumbnail_height - the target height of the thumbnail
preview_width - the target width of the large preview
preview_height - the target height of the large preview
small_preview_width - the target width of the small preview
small_preview_height - the target height of the small preview
path - the subdirectory in the MEDIA_ROOT
where image files would be stored
Default values of these settings are
You could change some of these settings and keep the rest undefined in you settings.py
,
in this case the default values would be used instead:
.. code-block::
CONTENT_GALLERY = {
"image_width": 1024,
"image_height": 768,
}
This code changes size of the large image only, the rest of settings values would be default.
To make your models able to attach a gallery, use the ContentGalleryMixin
in
models you want to use the content-gallery with:
.. code-block::
from django.db import models
from content_gallery.models import ContentGalleryMixin
class YourModel(ContentGalleryMixin, models.Model):
...
Also to be able to edit attached image collection on the admin page of your model,
you need to add the ImageAdminInline
to inlines of your model admin. Add following
code to your admin.py
.. code-block::
from django.contrib import admin
from content_gallery.admin import ImageAdminInline
from . import models
class YourModelAdmin(admin.ModelAdmin):
inlines = [
ImageAdminInline,
]
admin.site.register(models.YourModel, YourModelAdmin)
Now the django-content-gallery is available for your models. Then you need to add the content-gallery to your pages.
First of all add the content_gallery/_image_view.html
template to your templates where you
want the content-gallery to be available:
.. code-block::
{% include "content_gallery/_image_view.html" %}
The django-content-gallery uses jQuery within its scripts, so make sure that jQuery is available on your pages where the content-gallery is used.
To add the gallery related to your objects onto your pages the django-content-gallery provides
two template tags. Those template tags are located in the content_gallery
template tag set, so
before use them you should load this set:
.. code-block::
{% load content_gallery %}
The first template tag named gallery_preview
adds the large preview. It uses one argument which
is your object. This tag is meant to be used generally in templates of detail views:
.. code-block::
{% gallery_preview your_object %}
This code adds the preview widget that shows a preview of the first image related to the object.
The gallery_small_preview
tag adds a small preview onto the page, it uses such object as an
argument as well, and is meant to be used generally in templates of list views:
.. code-block::
{% gallery_small_preview your_object %}
This code adds the small preview widget that shows a small preview of the first image related to the object.
Also the django-content-gallery provides a simple template tag named gallery_image_data
that also gets an object as an argument and returns a dict object that contains an object of
the first image and JSON data for constructing a link to the object. You could use this template
tag to construct you own custom widgets.
For more details, see the content_gallery_testapp which is an example of the django-content-gallery usage.
FAQs
The Django application allows to attach a collection of images to objects of any model of any app
We found that django-content-gallery demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.