我得到{"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
我需要做什么来解决此问题?
尝试将blank=True
添加到FranchiseCharge
模型中的专营权字段中>
对于基于字符串和基于非字符串的字段,您还需要如果您希望允许表单中的空值,请设置blank = True,例如null参数仅影响数据库存储(请参见空白)。