Django模型字段。自定义字段值设置器

时间:2011-10-27 07:59:20

标签: python django

有没有办法在django定制属性设置器中这样做?

class MyModel(models.Model):
    myfield = models.CharField(length = 250)

    @myfield.setter
    def set_password(self, value):
       self.password = encrypt(value)

2 个答案:

答案 0 :(得分:1)

您将真正设置保存模型的值,因此最好覆盖save()方法(使用pre_save信号)。

答案 1 :(得分:1)

方法有什么问题?

instance.set_password('my_pw')

您可以使用@property来定义setter: http://docs.python.org/library/functions.html#property

### Pasted from docs

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
相关问题