Django Postman错误,必填字段

问题描述 投票:0回答:1

我得到{"franchise":["This field is required."]}当我通过http://localhost:8000/api/franchise/charge/发送POST请求到localhost django时我要发送以下两个字段作为邮递员的尸体

key: price       value: 1000
key: franchise   value: 1

网址

router.register(r'franchise/charge', views.FranchiseChargeViewSet)

查看

class FranchiseChargeViewSet(viewsets.ModelViewSet):
    queryset = FranchiseCharge.objects.all()
    serializer_class = FranchiseChargeSerializer

    def get_permissions(self):
        permission_classes = []
        if self.action == 'create':
            permission_classes = [IsFranchise]
        elif self.action == 'retrieve':
            permission_classes = [IsFranchise]
        elif self.action == 'list':
            permission_classes = [IsFranchise]
        elif self.action == 'update' or self.action == 'partial_update':
            permission_classes = [IsFranchise]
        elif self.action == 'destroy':
            permission_classes = [IsFranchise]
        return [permission() for permission in permission_classes]

型号

class FranchiseCharge(models.Model):
    franchise = models.ForeignKey(Franchise,null=True,on_delete=models.SET_NULL, default=1)
    time = models.DateTimeField(default=timezone.now)
    price = models.PositiveIntegerField(default=0)

序列化器

class FranchiseChargeSerializer(RelationModelSerializer):
    franchise = FranchiseSerializer(is_relation=True)
    class Meta:
        model = FranchiseCharge
        fields = ('id','franchise','time','price')

    @transaction.atomic
    def create(self, validated_data):
        instance = FranchiseCharge.objects.create(**validated_data)
        return instance

我需要做什么来解决此问题?

django postman
1个回答
0
投票

尝试将blank=True添加到FranchiseCharge模型中的专营权字段中>

django docs

对于基于字符串和基于非字符串的字段,您还需要如果您希望允许表单中的空值,请设置blank = True,例如null参数仅影响数据库存储(请参见空白)。

© www.soinside.com 2019 - 2024. All rights reserved.