Skip to main content

Use Leaflet in your django projects

Project description

Django Leaflet

See the documentation for more information.

django-leaflet allows you to use Leaflet in your Django projects.

It embeds Leaflet version 1.9.3.

Documentation Status https://img.shields.io/pypi/v/django-leaflet.svg https://img.shields.io/pypi/dm/django-leaflet.svg https://coveralls.io/repos/makinacorpus/django-leaflet/badge.png

Main purposes of having a python package for the Leaflet Javascript library :

  • Install and enjoy ;

  • Do not embed Leaflet assets in every Django project ;

  • Enjoy geometry edition with Leaflet form widget ;

  • Control apparence and settings of maps from Django settings (e.g. at deployment) ;

  • Reuse Leaflet map initialization code (e.g. local projections) ;

note:

django-leaflet is compatible with django-geojson fields, which allow handling geographic data without spatial database.

AUTHORS

makinacom

LICENSE

  • Lesser GNU Public License

  • Leaflet Copyright - 2010-2011 CloudMade, Vladimir Agafonkin

CHANGELOG

0.31.0 (2024-10-14)

  • Fix icon control.

  • Fix JS error if with-forms does not exists #379 #380

  • Support Django 5.1.

  • Drop support for Django < 4.2.

  • Avoid defining imgPathElement globally #384

  • Remove forms dependency on ‘extras’ #385

  • Pass with_forms to leaflet_draw_i18n template #387

0.30.1 (2024-06-17)

  • Change OSM tile link to unified format #375

  • Remove debug print added in #371 #377

  • Removed obsolete leaflet-src.map file #376

0.30.0 (2024-05-13)

  • Support Django 5.0 and Python 3.12 (#373).

  • Drop support for Python 3.7 (#373).

  • Make django-leaflet compatible with CSP #371 (This changes the way extra CSS is handled)

  • Allow delete polygon when using multipolygon geometries #372

0.29.1 (2024-03-11)

  • Upgrade embedded Leaflet to 1.9.3.

0.29.0 (2023-05-02)

  • Support Django 4.0, 4.1 and 4.2, and Python 3.10 and 3.11.

  • Drop support for Django < 3.2 and Python < 3.7.

  • Removed map_width / map_height. Moved CSS and height/width to custom CSS file #363

0.28.3 (2022-06-08)

  • Fix #346: distutils has been deprecated in Python 3.10.

  • Change DEFAULT_TILES attribution to HTTPS #348

  • Remove memoizing static URLs #351

0.28.2 (2021-10-25)

  • Fix field_store_class usage in map template.

0.28.1 (2021-06-07)

  • Upgrade Leaflet to 1.7.1.

  • Deprecate ‘LeafletWidget._get_attrs’ in favor of ‘LeafletWidget.get_attrs’

0.28.0 (2021-04-15)

  • Support Django 3.1 and 3.2.

  • Drop support for Django 1.11, 2.0, and 2.1.

  • translate to persian #313

0.27.1 (2020-07-31)

  • Replace link to geojsonlint.com with geojson.io. #298

0.27.0 (2020-07-03)

  • Drop support for Django < 1.11 and Python 2

  • Upgrade proj4js to 2.6.1 and Proj4Leaflet to 1.0.2 (#287)

  • Update Czech translations, add Slovak translations #269

  • Add Arabic translation #274

  • Precision fixes #280 #291

  • Display the map on mobile (Fixes #241) #292

  • Updated Leaflet to 1.6.0

0.26.0 (2019-12-06)

  • Django 3.0 compatibility

0.25.0 (2019-10-18)

  • #225 changes in staticfiles for django 1.11.14

  • #247 Allow resizing of raw Geometry textbox input via CSS, improve label, add docs

  • #108 Add examples to docs on adding overlays, customising maps in templates, admin and forms

  • #248 Allow use of a custom widget in the Admin. (fixes #151)

  • #261 Add request to formfield_for_dbfield signature; fix #260

  • #262 Fix Missing staticfiles manifest entry for ‘leaflet/images’

0.24.0 (2018-06-07)

  • Updated Leaflet to 1.3.1

0.23.0 (2017-11-28)

  • Fix fatal bug with Django => 1.11.2 for non-GIS databases

  • fixes #188 Better replace for icon image

  • Add Russian translation

  • Add Hungarian translation

  • Allow storing global leaflet map instances

0.22.0 (2017-04-06)

  • Set a default max zoom in leaflet.forms _setView to avoid an error.

  • Fix the div ids to work with admin inlines.

  • Django 1.11 compatibility

  • Fix multipolyline/multipolygon and polyline/polygon not working

0.21.0 (2017-02-28)

  • Update leaflet.draw and fix a packaging and a javascript bug

0.20.0 (2017-01-27)

New features

  • Update Leaflet to 1.0.3 (#169)

  • Update Leaflet-draw to 0.4.0 (#169)

  • Update Proj4Leaflet to 1.0.0 (#169)

  • Made static calls lazy, to fix issues with non-default STATICFILES_STORAGE (#149)

  • Add example application (#168)

Bug fixes

  • Use SpatiaLite library path from environment variable for running test (#173)

  • Fix max zoom level (#165)

  • Add SPATIAL_EXTENT default value to the default settings (#167)

Many thanks to @KostyaEsmukov, @cleder, @sikmir and @seav for their contributions!

0.19.0 (2016-08-22)

New features

  • Added leaflet.admin.LeafletGeoAdminMixin, useful for stacked or tabular inline forms (thanks @KostyaEsmukov, @Xowap)

0.18.2 (2016-08-16)

  • Fix compatibility with Django <= 1.7

0.18.1 (2016-04-07)

  • If the TILES setting contains an empty list, no default tiles layer is generated (thanks @dyve).

  • Fix to allow multipoints saving (fixes #130, thanks @rukayaj)

  • Fix settings override (#142, thanks @ndufrane)

  • Fix for templatetags.leflet_js debug setting (#148, thanks @arctelix)

  • Fixes for Django 1.10 compatibility (#138, thanks @PetrDiouhy)

0.18.0 (2016-01-04)

New features

  • Use a LazyEncoder to allow lazy translations in settings (#132, thanks @Mactory)

  • Enable settings_overrides also for admin (fixes #120, thanks @PetrDiouhy)

  • Add tests for Django 1.9 and Python 3.5 (thanks @itbabu)

Bug fixes

  • Fix LeafletWidget behaviour on GeometryCollectionField (fixes #135)

0.17.1 (2015-12-16)

  • Update Leaflet to 0.7.7

  • Update Leaflet-draw to 0.2.4

  • Fix rendering of leaflet widget when initial value is an empty string

0.17.0 (2015-11-11)

New features

  • Pass relative URLs for static files through django.contrib.staticfiles (thanks @dyve, fixes #111)

  • Allow to override settings at the template tag level (thanks @PetrDiouhy, fixes #59)

  • Update Leaflet to 0.7.5 (@dyve)

  • Add Czech locale (thanks @PetrDiouhy)

Bug fixes

  • Fix interaction with django-geojson (#106, thanks @batisteo)

  • Use protocol independant URLs in default OSM tiles (thanks @NotSqrt)

  • Fix deprecated TEMPLATE_DEBUG (#121, thanks @josenaka)

  • Fix errors with multi-word field names (#123, thanks @josemazo)

  • Fix loadevent not being taken into account in forms (#127, thanks @josemazo)

0.16.0 (2015-04-17)

New features

  • Add setting FORCE_IMAGE_PATH to bypass Leaflet guess on image paths (useful when using django-compressor) (thanks @nimasmi)

  • Add Hebrew translations (thanks @nonZero)

  • Map attribution can be translated using ugettext_lazy

Bug fixes

  • Fix widgets hanging forever with points (thanks @Azimkhan, fixes #90)

  • Remove setTimeout when calling setView() (thanks @manelclos, fixes #89)

  • Fix minZoom/maxZoom when undefined in settings (thanks Manel Clos)

0.15.2 (2014-12-22)

  • Allow to set any leaflet tileLayer option in TILES and OVERLAYS settings (fixes #70).

0.15.1 (2014-12-04)

  • Remove special characters in README (fixes #82)

  • Fix translation in French (fixes #86)

  • Fix es localization

0.15.0 (2014-10-24)

  • Add ability to add overlay tile layers via new setting OVERLAYS.

0.14.2 (2014-10-24)

  • Fix Django 1.7 support in tests (thanks Marco Badan)

  • Add spanish translations (thanks David Martinez)

0.14.1 (2014-07-30)

  • Fix draw events being received for each draw control on the map. (Caution: map.drawControl attribute is not set anymore)

0.14.0 (2014-07-29)

  • Fix GeoJSON serialization when creating new MultiPoint records

  • Make the only layer match the map max/min_zoom (fixes #67) (thanks Manel Clos)

  • Added widget attribute to edit several fields on the same map

0.13.7 (2014-06-26)

  • Fix typo in default proj4js path (ref #71)

0.13.6 (2014-06-26)

  • Setup Projection machinery in Leaflet forms if necessary

  • Django Leaflet forms fiels without libgeos installed (thanks Florent Lebreton)

0.13.5 (2014-06-18)

  • Prevent SRID download when default is used

0.13.4 (2014-06-13)

  • Fix SRID projection file not being loaded

0.13.3 (2014-06-10)

  • Upgrade to Leaflet 0.7.3

0.13.2 (2014-04-15)

  • Fix regression where maps have null as max zoom

0.13.1 (2014-04-10)

  • Fix GEOS dependency, back as optional for geometry edition only (fixes #65)

  • Add minZoom and maxZoom to map initialization

  • Add support of advanced static files locations, like S3 (thanks @jnm)

0.13.0 (2014-03-26)

  • Add support of Leaflet form fields on Django >= 1.4.2 (thanks GaĂŤl Utard)

0.12 (2014-03-22)

  • Add support of GeoJSON fields

0.11.1 (2014-02-12)

  • Do not complain about tile extent if SRID is 3857

0.11.0 (2014-02-07)

  • Add control of metric and imperial in SCALE option (thanks @smcoll)

  • Upgrade to Leaflet.draw 0.2.3

0.10.1 (2014-02-03)

  • Upgrade to Leaflet 0.7.2

0.10.0 (2014-01-22)

  • Python 3 support (thanks @itbabu)

  • Added JavaScript test using Mocha

0.9.0 (2013-12-11)

  • Upgrade to Leaflet 0.7.1

  • Fix unsaved warning being always triggered on Internet Explorer.

  • Added DE locale (thanks @rosscdh)

  • Fix installation with python 2.6 (thanks @ollb)

0.8.5 (2013-11-05)

  • Fix name collision.

0.8.4 (2013-11-05)

  • Fix regression in Django leaflet options serialization.

0.8.3 (2013-11-05)

  • Switch to lazy gettext in leaflet module init.

0.8.2 (2013-10-31)

  • Fix drawing of multi-polygon (fixes #37)

  • Fix attached data for events with jQuery fallback (fixes #38)

  • Fix Javascript syntax errors when using form prefixes (fixes #40)

0.8.1 (2013-09-30)

  • Fix Leaflet library inclusion with “plugins=ALL” outside Admin.

  • Do not include translations in every widgets outside Admin.

  • Fix syntax error if form widget translations contains quotes.

  • Fix dependency error if Leaflet is loaded after the form widget in the DOM.

  • Respect plugins declaration order using OrderedDicts

  • Prepend forms assets (instead of extend) if PLUGINS[‘forms’] already exists.

0.8.0 (2013-09-18)

  • Renamed Leaflet map fragment template

  • Leaflet map geometry widgets for adminsite and forms (requires Django 1.6)

  • Fix geometry type restriction in form fields (fixes #32)

  • Use jQuery for triggering events, only if CustomEvent constructor is not available (fixes #27, fixes #34)

0.7.4 (2013-08-28)

  • Fix projection download error if not available

  • Compute resolutions the same way TileCache does it, and provide example of TileCache configuration.

  • Raise ImproperlyConfigured if TILES_EXTENT is not portrait (since not supported)

0.7.3 (2013-08-23)

  • Do not use console() to warn about deprecated stuff if not available (<IE9)

  • Fix apparence of Reset view control for Leaflet 0.6

  • Add French and Italian locales

0.7.2 (2013-08-23)

  • Fix JS error when no callback value is provided.

0.7.1 (2013-08-21)

  • Fix map initialization with default tiles setting

  • Fix map fitBounds() to SPATIAL_EXTENT in settings

0.7.0 (2013-08-21)

Breaking changes

  • The leaflet_map template tag no longer registers initialization functions in global scope, and no longer adds map objects into window.maps array by default. Use LEAFLET_CONFIG['NO_GLOBALS'] = False to restore these features.

  • Initialization callback function no longer receives the map bounds in second argument, but the map options object.

Deprecated

  • JS default callback function ( <name>Init() ) for map initialization is deprecated. Use explicit callback parameter in template tag, or listen to window event map:init instead. (See Use Leaflet API section in README.)

  • TILES_URL entry in LEAFLET_CONFIG is deprecated. Use TILES instead.

  • Settings lookup is restricted to LEAFLET_CONFIG dict. Most notably, SRID, MAP_SRID and SPATIAL_EXTENT at global Django settings level are discouraged.

New features

  • Add ability to associate layers attributions from settings

  • Add auto-include key for entries in PLUGINS setting, in order to implicity load plugins with leaflet_css and leaflet_js tags.

  • Rewrote map initialization, into less flexible and obstruvise way.

  • Use plugin system for Leaflet.MiniMap.

  • Add loadevent parameter to leaflet_map tag.

  • Map initialization is now idempotent, does nothing if map is already initialized.

  • Add ATTRIBUTION_PREFIX setting to control prefix globally.

0.6.0 (2013-08-08)

  • Upgrade to Leaflet 0.6.4

0.6.0a (2013-07-05)

  • Upgrade to Leaflet 0.6.2

  • Upgrade Leaflet.Minimap (rev 3cd58f7)

  • Upgrade Proj4Leaflet (rev f4f5b6d)

0.5.1 (2013-04-08)

  • Add minimap support

  • Drop Leaflet version switching

  • Update Leaflet to 0.5.1

  • Update Leaflet.Minimap

  • Fix apparence of Reset view button

0.4.1 (2012-11-05)

  • Fix div creation test in template.

0.4.0 (2012-11-05)

  • Remove imperial scale.

  • Add create_div parameter

0.3.0 (2012-10-26)

  • Remove max resolution setting since it can be computed

  • Allow scale control even if view is not set

  • Upgrade Leaflet to 0.4.5

0.2.0 (2012-09-22)

  • Fix packaging of templates

  • Use template for <head> fragment

  • Do not rely on spatialreference.org by default

  • Default settings for SRID

  • Default settings for map extent

  • Default map height

  • Default tiles base layer

  • map variable is not global anymore

0.1.0 (2012-08-13)

  • Initial support for map projection

  • Show zoom scale by default

  • Spatial extent configuration

  • Initialization callback instead of global JS variable

  • Leaflet version switching

  • Global layers configuration

0.0.2 (2012-03-22)

  • Add IE conditional CSS

0.0.1 (2012-03-16)

  • Initial working version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_leaflet-0.31.0.tar.gz (562.3 kB view hashes)

Uploaded Source

Built Distribution

django_leaflet-0.31.0-py3-none-any.whl (582.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page