Ajax 不在数据库中保存数据

问题描述

我正在构建一个博客应用程序,但遇到了一个问题。

我想做什么

我正在尝试通过 JavaScript 访问用户的位置并将模型的实例保存在数据库中。

访问位置工作正常。但是保存不起作用

问题

位置的城市未保存在数据库中。当我刷新页面时,它不会保存在数据库中。

models.py

     class Profile(models.Model):
        user = models.OneToOneField(User,on_delete=models.CASCADE,default='',unique=True)
        full_name = models.CharField(max_length=100,default='')
        city = models.CharField(max_length=30,default='')

views.py

def func(request):
    city = request.GET.get('city')
    city.save()

    message = 'Updated'
    return HttpResponse(message)

模板 (.html)

# Getting city name ( first javascript code ) through IP is working.

<script>

$.ajax({
  url: "https://geolocation-db.com/jsonp",jsonpCallback: "callback",dataType: "jsonp",success: function(location) {
    $('#city').html(location.city);

  }
});

</script>



#This code is for send data to Django.

<script>

    $("city").change(function)(){
        const city = 'city';
        $.ajax({
            url ="{% url 'mains:func' %}",data = {
                'city':city,},success.function(data){
                console.log("Update");
            }
        });

    };

</script>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

    <div>City: <span id="city"></span></div>

我不知道问题出在哪里。

任何帮助将不胜感激。

提前致谢。

解决方法

您需要更新属于请求中引用的用户的配置文件实例。 (这是假设请求是针对登录用户的)。

def func(request):
    city = request.GET.get('city')
    user = request.user
    profile = Profile.objects.get(user=user)
    profile.city = city
    profile.save()
    message = 'Updated'
    return HttpResponse(message)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...