如何在django中为request.data添加新的键值



我想知道如何向我的请求添加新值。data

这是我的请求。数据,结构:

[{'fname': 'john', 'lname': 'Doe'}]

我如何添加年龄密钥,例如

这是我的全部代码:

def create(self, request):
formSerializer = self.serializer_class(data = request.data)
#### look Down
request.data['master'] = self.request.user.id
#######
if formSerializer.is_valid():
formSerializer.save()
objectSerializer = TeamSerializer(Team.objects.all(), many=True)
return Response(objectSerializer.data, status = 
status.HTTP_201_CREATED)
return Response(formSerializer.errors, status.HTTP_400_BAD_REQUEST)

这是我的型号

from django.db import models
from users.models import CustomUser
# Create your models here.
class Team(models.Model):
master = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
name = models.CharField(null=False, blank=False, max_length=255)
comment = models.CharField(null=True, blank=True, max_length=255)

我有两个输入字段(名称+注释(,所以我需要主字段,这就是的原因

这里您不需要在request.data中添加mater

试试这个:

def create(self, request):
formSerializer = self.serializer_class(data = request.data)
# request.data['master'] = self.request.user.id
if formSerializer.is_valid():
formSerializer.save(master = self.request.user)
objectSerializer = TeamSerializer(Team.objects.all(), many=True)
return Response(objectSerializer.data, status = 
status.HTTP_201_CREATED)
return Response(formSerializer.errors, status.HTTP_400_BAD_REQUEST)

从序列化程序的字段中删除master并将其添加到serializer:中

class MYSerializer(serializers.ModelSerializer):
username = serializers.CharField(source='master.username',read_only=True)

class Meta:
model = MY_MODEL
fields = (OTHER_FIELDs,'username')

来源均值??

最新更新