相关疑难解决方法(0)

什么是使用getter和setter的pythonic方法?

我这样做:

def set_property(property,value):  
def get_property(property):  
Run Code Online (Sandbox Code Playgroud)

要么

object.property = value  
value = object.property
Run Code Online (Sandbox Code Playgroud)

我是Python的新手,所以我还在探索语法,我想对此做一些建议.

python getter-setter

298
推荐指数
8
解决办法
21万
查看次数

使用Django Rest Framework从模型序列化属性(getter和setter)的问题

我想在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.

我做错了什么?!

我使用以下版本:

  • python == 3.6.1
  • Django == 1.11.2
  • djangorestframework == 3.6.3

python django serialization django-rest-framework

3
推荐指数
1
解决办法
2125
查看次数