我如何使用 (form.py) python Django 插入和更新(编辑)纬度和长

how I can insert and update (edit) latitude and long using (form.py) python Django

我想使用 python Django 插入纬度和经度。我使用代码,但在单击它在数据库中显示为 null 的按钮时不起作用。

models.py

class UserLocation(models.Model):
    map_id = models.AutoField(primary_key=True)
    map_u_address = models.CharField(max_length=250, null=True)
    latitude = models.DecimalField(max_digits=11, decimal_places=7, null=False, blank=True)
    longitude = models.DecimalField(max_digits=11, decimal_places=7, null=False, blank=True)

view.py

def save_location(request):
    if request.method == 'POST':
        form = request.POST

        latitude = form.get('latitude')
        longitude = form.get('longitude')
        user_id = request.session['user_id']


        insert_data = UserLocation.objects.create(                latitude=latitude,longitude=longitude,

                                                  )
        if insert_data:

            json_data = {'msg': "Insert data successfully", 'state_val': 1}
            return JsonResponse(json_data)
        else:
            json_data = {'msg': "Data not saved", 'state_val': 2}
            return JsonResponse(json_data)
    else:
        return render(request, 'map_1.html')

如何使用 (form.py) python Django 对纬度和长时间进行更新(编辑)?

在forms.py

from django.forms import ModelForm
# Import your UserLocation model
from .models import UserLocation

# Create your forms here
class UserLocationForm(ModelForm):
    class Meta:
        model = UserLocation
        fields = ('latitude', 'longitude')

在views.py

from .forms import UserLocationForm

def save_location(request):
    form = UserLocationForm()
    context = {}
    context['form'] = form
    if request.method == 'POST':
        form = UserLocationForm(request.POST)
        user_id = request.session['user_id']
        if form.is_valid():
            insert_data = form.save()
            if insert_data:
                json_data = {'msg': "Insert data successfully", 'state_val': 1}
                return JsonResponse(json_data)
            else:
                json_data = {'msg': "Data not saved", 'state_val': 2}
                return JsonResponse(json_data)
        else:
            # Update form in context dictionary
            context['form'] = form
            # Re-render page with prefilled data
            return render(request, 'map_1.html', context)
    else:
        return render(request, 'map_1.html', context)

在模板中

<form action="" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit">
</form>

用于更新位置

在views.py

def update_location(request, location_id):
    try:
        # Get location from db for location_id
        location = UserLocation.objects.get(id=location_id)
    except UserLocation.DoesNotExist:
        return # redirect user back as the location id is invalid
    # Populate the form with data of requested instance
    form = UserLocationForm(instance=location)
    context = {}
    context['form'] = form
    if request.method == 'POST':
        form = UserLocationForm(request.POST)
        user_id = request.session['user_id']
        if form.is_valid():
            form.save()
            return # Redirect user to somewhere
        # When the posted data is invalid
        else:
            # Update form in context dictionary
            context['form'] = form
            # Re-render page with prefilled data
            return render(request, 'update_location.html', context)
    else:
        return render(request, 'update_location.html', context)

在update_location.html

{% block body %}
    <div class="container-fluid">
        <form method="POST" action="">
            {% csrf_token %}
            {{ form }}
            <input type="submit" value="Upload" class="btn btn-primary">
        </form>
    </div>
{% endblock body %}

在urls.py

path('update_location/<int:location_id>/', views.update_location, name="update-location"),