我已经使用jQuery和Ajax将经度和纬度数据提交到要存储这些数据的任何模型。
在您的model.py中:
from django.contrib.auth import User class UserGeoLocation(models.Model): user = models.oneToOneField(User) latitude = models.FloatField(blank=False, null=False) longitude = models.FloatField(blank=False, null=False)
为您的view.py
def save_user_geolocation(request): if request.method == 'POST': latitude = request.POST['lat'] longitude = request.POST['long'] UserGeoLocation.create( user = request.user latitude= latitude, longitude = longitude, ) return HttpResponse('')现在我们有了视图,我们可以设置一个URL端点来提交发布请求
url('^abc/xyz/$', appname.views.save_user_geolocation)最后是实际形式
$(document).on('submit', '#id', function(e){ e.preventDefault(); $.ajax( type='POST', url = 'abc/xyz', data: {lat:position.coords.latitude,long: position.coords.longitudecsrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val() }, });对于最后一步,假设您使用了链接示例中的js代码,然后可以将这些坐标值分配给变量,这些变量将随用户单击按钮时触发的发布请求一起提交。您要从中提交数据的表单的ID,e.PreventDefault用于阻止发布数据时重新加载页面。最后,django需要csrf令牌才能提交表单。



