How to do it...

Let's define the form for the locations so that it can support Ajax uploads using the following steps:

  1. Let's create a model form for the locations with the nonrequired picture field, a hidden picture_path field, and latitude and longitude fields for geoposition:
# myproject/apps/locations/forms.pyimport osfrom django import formsfrom django.urls import reversefrom django.utils.translation import ugettext_lazy as _from django.core.files.storage import default_storagefrom crispy_forms import bootstrap, helper, layoutfrom .models import Locationclass LocationForm(forms.ModelForm):    picture = forms.ImageField(        label=_("Picture"), max_length=255,          widget=forms.FileInput(), required=False    )    picture_path = forms.CharField(        max_length ...

Get Django 3 Web Development Cookbook - Fourth Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.