Django rest framework save()得到一个意外的关键字参数';所有者';
models.pyDjango rest framework save()得到一个意外的关键字参数';所有者';,django-rest-framework,django-serializer,Django Rest Framework,Django Serializer,models.py class Video(models.Model): obj = models.FileField() owner = models.ForeignKey(Profile,on_delete=models.CASCADE) dis = models.TextField() title = models.ForeignKey(Title,on_delete=models.CASCADE,default=0) def __str__(self): return self.
class Video(models.Model):
obj = models.FileField()
owner = models.ForeignKey(Profile,on_delete=models.CASCADE)
dis = models.TextField()
title = models.ForeignKey(Title,on_delete=models.CASCADE,default=0)
def __str__(self):
return self.dis
序列化程序.py
class VideoSerializer(serializers.ModelSerializer):
#owner = serializers.PrimaryKeyRelatedField(many=False, read_only=True)
class Meta:
model = Video
fields = ['obj','dis','owner','title']
def save(self,validated_data):
request = self.context.get("request")
v = Video(
obj = validated_data.get('obj'),
dis = validated_data.get('dis'),
owner = Profile.objects.get(user=request.user),
)
v.save()
return v
def update(self, instance, validated_data):
request = self.context.get("request")
instance.title = validated_data.get('title',instance.title)
instance.dis = validated_data.get('dis', instance.dis)
if instance.owner == request.user:
instance.save()
return instance
views.py
class VideoView(viewsets.ModelViewSet):
serializer_class = VideoSerializer
queryset = Video.objects.all()
def perform_create(self, serializer):
user = self.request.user
serializer.save(owner=Profile.objects.get(user=user))
嗨,伙计们!我试图用DRF序列化程序在数据库中保存模型&我得到一个错误。。。。
如果您能帮助我,我将不胜感激。我的错误在序列化程序中的save()方法中您不应该重写方法定义中的
save
参数。相反,请使用以下命令:
def save(self):
owner = self.validated_data.get('owner')
...
参考: