gpt4 book ai didi

Django休息更新一个字段

转载 作者:行者123 更新时间:2023-12-03 23:29:58 25 4
gpt4 key购买 nike

我刚开始使用 Django 并且陷入了一些我认为应该很简单的事情,但我不知道该怎么做。

我有一个这样的模型:

id = models.AutoField(primary_key=true)
...
amount = models.IntegerField()
...

基本上,用户会给出一个金额,并且模型需要使用当前金额 + 用户输入的金额进行更新。

我使用序列化程序来创建新对象,但我真的不知道如何使用它们来做到这一点。

最佳答案

让我们假设以下情况:

  • 您的模型名为 MyModel
  • 您的序列化程序类名为 MyModelSerializer
  • AmountPartialUpdateView正在延长 APIView
  • 您的部分更新 url 是这样定义的 - 也就是说,模型 id 是
    pk 中通过URL 变量和要添加的数量在 amount 中传递网址变量:
    urlpatterns = patterns('',
    # ...
    url(r'^model/update-partial/(?P<pk>\d+)/(?P<amount>\d+)$', AmountPartialUpdateView.as_view(), name='amount_partial_update'),
    # ...
    )

  • 然后,您应该在 AmountPartialUpdateView.patch() 中实现正确的更新逻辑。方法。实现此目的的一种方法是:
    from django.shortcuts import get_object_or_404
    from rest_framework import Response


    class AmountPartialUpdateView(APIView):

    def patch(self, request, pk, amount):
    # if no model exists by this PK, raise a 404 error
    model = get_object_or_404(MyModel, pk=pk)
    # this is the only field we want to update
    data = {"amount": model.amount + int(amount)}
    serializer = MyModelSerializer(model, data=data, partial=True)

    if serializer.is_valid():
    serializer.save()
    return Response(serializer.data)
    # return a meaningful error response
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    这样,访问 URL
    model/update-partial/123/5

    你会增加 amount型号 ID 123 来自 5 单位。

    关于Django休息更新一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50129567/

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