Skip to content

Instantly share code, notes, and snippets.

@avostryakov
Created December 25, 2009 09:42
Show Gist options
  • Save avostryakov/263581 to your computer and use it in GitHub Desktop.
Save avostryakov/263581 to your computer and use it in GitHub Desktop.
# Самое элегантное решение (доступно с версии Python 2.6)
class Requisite(models.Model):
requisite = models.CharField(max_length=100, verbose_name=u'реквизиты')
@property
def requisite_dict(self):
return json.loads(self.requisite)
@requisite_dict.setter
def requisite_dict(self, value=None):
self.requisite = json.dumps(value)
# менее красивое, но терпимо
class Requisite(models.Model):
requisite = models.CharField(max_length=100, verbose_name=u'реквизиты')
def requisite_get(self):
return json.loads(self.requisite)
def requisite_set(self, value):
self.requisite = json.dumps(value)
requisite_dict = property(requisite_get, requisite_set)
# старое замороченное решение
def Property(func)
return property(**func())
class Requisite(models.Model):
requisite = models.CharField(max_length=100, verbose_name=u'реквизиты')
@Property
def requisite_dict():
def fget(self):
return json.loads(self.requisite)
def fset(self, value):
self.requisite = json.dumps(value)
return locals()
# для самостоятельного задания оставляю создание свойства на основе дескрипотов языка Python :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment