gpt4 book ai didi

django - 如何仅更改当前用户模型中字段的值?

转载 作者:行者123 更新时间:2023-12-02 08:04:33 25 4
gpt4 key购买 nike

我在 Level 中有一个字段 'progress'

class Level(models.Model):
level = models.CharField(max_length=50, unique=True)
helper = models.TextField(null=True, blank=True)
progress = models.IntegerField(default=0)

我需要将“进度”加 1。我只需要为每个用户存储不同的值。我真的无法弄清楚如何打点它。现在我在 views.py 中有一个 LevelProgress 类,它将进度字段加 1,但它在全局范围内加 1。

class LevelProgress(APIView):

def get(self, request, id):
queryset_ = Level.objects.get(pk=id)
queryset_.progress += 1
queryset_.save()
serializer = LevelFullSerializer(queryset_)
return Response(serializer.data)

如何为当前用户加 1?

最佳答案

您可以像这样将 OneToOneField 字段添加到 Level 模型:

from django.conf import settings

class Level(models.Model):
level = models.CharField(max_length=50, unique=True)
helper = models.TextField(null=True, blank=True)
progress = models.IntegerField(default=0)
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

现在在您的 View 中您可以获得当前用户的级别:

class LevelProgress(APIView):

def get(self, request, id):
queryset_ = Level.objects.get(user=request.user)
queryset_.progress += 1
queryset_.save()
serializer = LevelFullSerializer(queryset_)
return Response(serializer.data)

关于django - 如何仅更改当前用户模型中字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53021929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com