簡體   English   中英

Ajax 未在數據庫中保存數據

[英]Ajax is not saving data in DataBase

我正在構建一個 BlogApp,但我遇到了一個問題。

我想做什么

我正在嘗試通過JavaScript訪問用戶的位置並將模型的實例保存在數據庫中。

訪問位置工作正常。 但是儲蓄不起作用

問題

位置的城市未保存在數據庫中。 當我刷新頁面時,它不會保存在數據庫中。

模型.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='')

視圖.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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM