Django Map Widgets
Configurable, pluggable and more user friendly map widgets for Django PostGIS fields.
- Documentation: http://django-map-widgets.readthedocs.io/
- Project Home Page: https://github.com/erdem/django-map-widgets/
Achievements
The aim of the Django map widgets is to make all Geo Django widgets more user-friendly and configurable.
Django map widgets package has support for Mapbox and Google Map services currently, if you want to see more widgets and think you can help, feel free to contribute to the project.
We would be happy to review and merge your contributions. :)
Installation
pip install django-map-widgets
Add ‘map_widgets’ to your INSTALLED_APPS
in settings.py
INSTALLED_APPS = [
...
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mapwidgets',
]
Collects the static files into STATIC_ROOT
.
python manage.py collectstatic
Django Admin
from django.contrib.gis.db import models
from mapwidgets.widgets import GooglePointFieldWidget
class CityAdmin(admin.ModelAdmin):
formfield_overrides = {
models.PointField: {"widget": GooglePointFieldWidget}
}
Django Forms
from mapwidgets.widgets import GooglePointFieldWidget, GoogleStaticOverlayMapWidget
class CityForm(forms.ModelForm):
class Meta:
model = City
fields = ("coordinates", "city_hall")
widgets = {
'coordinates': GooglePointFieldWidget,
'city_hall': GoogleStaticOverlayMapWidget,
}
...and your template should look something like this
<form method="POST" action="">
{% csrf_token %}
{{form.media}}
{{form.as_p}}
</form>
Requirements
Django Map Widgets needs Jquery dependency to work in your regular views. In Django Admin case, you don't need to provide the jQuery. Just add map widgets to your django admin forms.
Screenshots
Google Map Point Field Widget
MapBox Map Point Field Widget
Google Map Static Overlay Widget
This widget is working with Magnific Popup jQuery plugin.
Release Notes
0.4.2
- GooglePointFieldInlineWidget bug fixes for Django 4.2.x (#142), thanks for @isarota.
- Added
.readthedocs.yaml
to cover new Read the Docs updates.
0.4.1
- Added scroll wheel zooming functionality switch to Google Point Map Settings. (#134)
- Added Chinese(ZH) localisation support. (#133)
0.4.0
- Supported MapBox Map for Django Geo Point Field.
- Fixed undefined place object binding issue in javascript triggers. (#125)
- Documented MapBox point field map widget features.
- Updated various localize files.
0.3.3
- Replaced ugettext_lazy usages with gettext_lazy for Django 4.0. (#127)
- Updated Travis CI file. (#129)
0.3.2
- Added streetViewControl switch to GooglePointFieldWidget settings. (#124)
0.3.1
- Removed
six
package usages. (#117)- Added a new general widget setting in order to specify Google JS libraries. (#119)
- Implemented some improvements for the demo project.
0.3.0
- Implemented a new demo project with Django 2.x.
- Fixed Django Admin jQuery conflicts. (#100)
- Fixed a new widget JS instance initialising issue for Django Admin Inlines. (#84)
- Added Python 3.8 env settings to TravisCI configuration.
See release notes for all versions.