django - 更新 django rest 框架中的字段
问题描述
我有一个名为 Customer 的类:
class Customer(models.Model):
name = models.CharField(max_length=250)
status = models.IntegerField()
序列化器是:
class CustomerSerializer(serializers.ModelSerilizer):
class Meta:
model = Customer
fields = '__all__'
现在如何使用 POST 方法仅更改/更新状态字段。我在这里使用功能基础视图。我想获得以下价值:
{
"status": 1
}
解决方案
如果您使用基于类的视图,这会更容易。您可以轻松创建一个UpdateStatusView
更新RetrieveUpdateAPIView
发送patch
请求。
但是,由于您使用的是基于函数的视图,我仍然建议您使用PATCH
请求而不是POST
请求,这样可以提供更好的自我文档。
def update_status_request(request, id):
if request.method == 'PATCH':
customer = Customer.objects.get(pk=id)
customer.status = request.data.get('new_status')
customer.save()
return JsonResponse({'message': 'Status has been updated'}, status=200)
您可能还想做一些额外的验证并尝试...除了。
推荐阅读
- android - 撰写:创建带有圆形背景的文本
- c# - 如何使用 XmlTextWriter 使 XML 元素自动关闭
- javascript - 使用 React.lazy 后在 Create-React-App 上看不到性能增益
- python - 带有 TKInter 的 Python 密码生成器
- pyspark - pyspark - 如何添加从数据框中搜索新列值的列:
- java - Boolean.parseboolean 无法评估计算的布尔表达式
- python - 如何找到加权顶点的中心枢纽
- python-3.x - 将 Python 列表对象转换为 numpy 数组
- laravel - Laravel 8 - 无法在中间件中设置 cookie
- vba - VBA用户定义的上下文菜单粘贴不会粘贴到文本框中