如何使用fetch或ajax编辑模型(用户)字段“全局”?

How to edit a models (users) field ''globally'' using fetch or ajax?

提问人:user19522235 提问时间:8/16/2023 更新时间:8/16/2023 访问量:19

问:

所以我有这个 JavaScript 文件,我想全局更改当前经过身份验证的用户的字段? 我有一个带有水平字段的配置文件模型:

class Profile(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    level = models.IntegerField(default=1)

对于我的 url,我添加了上下文并让它登录到目标 JS 文件

urls.py

def game(request):
    profile = Profile.objects.get(user=request.user) #profile object
    level = profile.level #level context from the profile
    return render(request, 'games/game.html', {'level': level})

游戏.js:

const data = document.currentScript.dataset;
const level = parseInt(data.level);
console.log(level);


// BOILER PLATE FETCH //
fetch(url, {
    method: "POST",
    credentials: "same-origin",
    headers: {
      "X-Requested-With": "XMLHttpRequest",
      "X-CSRFToken": getCookie("csrftoken"),
    },
    body: JSON.stringify({payload: "data to send"})
  })
  .then(response => response.json())
  .then(data => {
    console.log(data);
  });

它控制台从那里记录级别,但是我想知道是否可以使用下面的样板获取“全局”编辑级别值?或者也许是阿贾克斯?我的主要问题是我认为我可以专门编辑showProfilePage视图的级别(也许),但我希望将级别永久更新为所需的数字。这样,它将在我使用其上下文的任何地方保留其更新的编号。我什至不知道从哪里开始。我想也许就像我 views.py 中的注册表一样,我可以以某种方式保存个人资料,也许在成功后?我走在正确的轨道上吗?我是 Django 的新手,不完全理解带有上下文的 POST 请求,我已经阅读了文档并观看了一些视频,这就是我得到这个想法的地方,但如果我能在经过身份验证的用户视图配置文件上发布更新级别的结果(一个),那就没问题了。洞察力将不胜感激!

Django ajax post fetch-api

评论

0赞 Ahtisham 8/16/2023
你把我的答案作为参考,只需将 to 更改为并在视图中更新您 stackoverflow.com/questions/20306981/ 获得的级别......getpost
0赞 user19522235 8/17/2023
@Ahtisham 好的,谢谢,我很感激,但是我仍然在为确切地提取和发布什么而苦苦挣扎,因为我只是在永久编辑值/字段。pastebin.com/27nqhJ6W

答: 暂无答案