提问人:user19522235 提问时间:8/16/2023 更新时间:8/16/2023 访问量:19
如何使用fetch或ajax编辑模型(用户)字段“全局”?
How to edit a models (users) field ''globally'' using fetch or ajax?
问:
所以我有这个 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 请求,我已经阅读了文档并观看了一些视频,这就是我得到这个想法的地方,但如果我能在经过身份验证的用户视图配置文件上发布更新级别的结果(一个),那就没问题了。洞察力将不胜感激!
答: 暂无答案
评论
get
post