Rod*_*aga 3 python django serialization django-rest-framework
我想在Serializer中使用我的模型中的属性(包括setter),但显然,从不调用setter.
models.py
class Awesome(models.Model):
_value = models.TextField()
def set_value(self, value):
self._value = value
def get_value(self):
return self._value
value = property(get_value, set_value)
Run Code Online (Sandbox Code Playgroud)
serializers.py
class AwesomeSerializer(serializers.ModelSerializer):
class Meta:
model = Awesome
fields = ('value',)
Run Code Online (Sandbox Code Playgroud)
views.py
class AwesometViewSet(viewsets.ModelViewSet):
queryset = Awesome.objects.all()
serializer_class = AwesomeSerializer
Run Code Online (Sandbox Code Playgroud)
在上面提到的这种情况下,当我进行GET时,getter工作正常,但是当我进行POST时,序列化程序不会调用setter.
我做错了什么?!
我使用以下版本:
您正在使用ModelSerializer,它根据模型上的字段自动在序列化程序上创建读写字段.如果它不是字段(属性或方法)并声明为Meta.fields
,则默认为只读字段.
在序列化器上明确声明它将使其成为RW字段:
class AwesomeSerializer(serializers.ModelSerializer):
value = serializers.CharField()
class Meta:
model = Awesome
fields = ('value',)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2125 次 |
最近记录: |