makinacorpus / django-leaflet

Use Leaflet in your Django projects
GNU Lesser General Public License v3.0
712 stars 281 forks source link

How to add event to LeafletWidget? #325

Open eruiz67 opened 3 years ago

eruiz67 commented 3 years ago

In my django app I have a Worker model with a name and location (Point). Using django-leflet LeafletWidget I can create a Form where the user can set a location (marker to that worker). Is it possible to add an event to the widget, so, every time the user sets the marker, or change the marker position it gets the coordinates of that point and perform other actions (like an ajax request)?

class WorkerForm(forms.ModelForm):

    class Meta:
        model = WorkerModel
        exclude = ("id",)
        widgets = {
            'name':forms.TextInput(attrs={'class': 'form-control'}),
            'location': LeafletWidget(),
}

in the template i just call 'forms.location' and it renders the map with the controls to set a marker

Gagaro commented 3 years ago

You can add a JS script which use the map:init event: https://django-leaflet.readthedocs.io/en/latest/templates.html#use-leaflet-api

All events from Leaflet Draw: https://leaflet.github.io/Leaflet.draw/docs/leaflet-draw-latest.html#l-draw-event