簡體   English   中英

如何在 django 中向我的 request.data 添加新的鍵值

[英]how can i add a new key value to my request.data in django

我想知道如何向我的request.data添加新值

這是我的request.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)

這是我的 model

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中添加request.data

嘗試這個:

    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')

來源均值??

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM